Hi ! I recommend JPA. Since JDO has incompatibilities great and bugs for GAE. Regards
On Mar 16, 1:33 am, VHT Corp <[email protected]> wrote: > Hi all, > I develop a application with GAE. > I have problem : > > javax.jdo.JDOFatalUserException: Error in meta-data for > com.vht.app.om.admin.User.locationCreate: Class > com.vht.app.om.admin.User has multiple relationship fields of type > com.vht.app.om.admin.Location: locationCreate and locationCheckIn. > This is not yet supported. > at > org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(Nuc > leusJDOHelper.java: > 354) > at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:230) > at com.vht.app.dao.UserDAO.getList(UserDAO.java:32) > at > com.vht.app.web.controller.admin.InsertDataController.handleRequestInternal > (InsertDataController.java: > 38) > at > org.springframework.web.servlet.mvc.AbstractController.handleRequest(Abstra > ctController.java: > 153) > at > org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(S > impleControllerHandlerAdapter.java: > 48) > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServ > let.java: > 788) > at > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServl > et.java: > 717) > at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkSe > rvlet.java: > 644) > at > org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.jav a: > 549) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: > 511) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1166) > at > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(Cha > racterEncodingFilter.java: > 88) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequest > Filter.java: > 76) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequest > Filter.java: > 70) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFi > lter.java: > 58) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans > actionCleanupFilter.java: > 43) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFile > Filter.java: > 122) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: > 388) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: > 216) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: > 182) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: > 765) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > 418) > at > com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEn > gineWebAppContext.java: > 70) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) > at com.google.appengine.tools.development.JettyContainerService > $ApiProxyHandler.handle(JettyContainerService.java:351) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: > 542) > at org.mortbay.jetty.HttpConnection > $RequestHandler.headerComplete(HttpConnection.java:923) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java: > 409) > at org.mortbay.thread.QueuedThreadPool > $PoolThread.run(QueuedThreadPool.java:582) > NestedThrowablesStackTrace: > Error in meta-data for com.vht.app.om.admin.User.locationCreate: Class > com.vht.app.om.admin.User has multiple relationship fields of type > com.vht.app.om.admin.Location: locationCreate and locationCheckIn. > This is not yet supported. > org.datanucleus.store.appengine.MetaDataValidator > $DatastoreMetaDataException: Error in meta-data for > com.vht.app.om.admin.User.locationCreate: Class > com.vht.app.om.admin.User has multiple relationship fields of type > com.vht.app.om.admin.Location: locationCreate and locationCheckIn. > This is not yet supported. > at > org.datanucleus.store.appengine.MetaDataValidator.newMultipleRelationshipFi > eldsOfSameType(MetaDataValidator.java: > 284) > at > org.datanucleus.store.appengine.MetaDataValidator.validateField(MetaDataVal > idator.java: > 264) > at > org.datanucleus.store.appengine.MetaDataValidator.validateFields(MetaDataVa > lidator.java: > 148) > at > org.datanucleus.store.appengine.MetaDataValidator.validate(MetaDataValidato > r.java: > 121) > at > org.datanucleus.store.appengine.DatastoreManager.validateMetaDataForClass(D > atastoreManager.java: > 766) > at > org.datanucleus.store.appengine.query.DatastoreQuery.performExecute(Datasto > reQuery.java: > 214) > at > org.datanucleus.store.appengine.query.JDOQLQuery.performExecute(JDOQLQuery. > java: > 89) > at org.datanucleus.store.query.Query.executeQuery(Query.java:1489) > at org.datanucleus.store.query.Query.executeWithArray(Query.java: > 1371) > at org.datanucleus.store.query.Query.execute(Query.java:1344) > at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:221) > at com.vht.app.dao.UserDAO.getList(UserDAO.java:32) > at > com.vht.app.web.controller.admin.InsertDataController.handleRequestInternal > (InsertDataController.java: > 38) > at > org.springframework.web.servlet.mvc.AbstractController.handleRequest(Abstra > ctController.java: > 153) > at > org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(S > impleControllerHandlerAdapter.java: > 48) > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServ > let.java: > 788) > at > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServl > et.java: > 717) > at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkSe > rvlet.java: > 644) > at > org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.jav a: > 549) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: > 511) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1166) > at > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(Cha > racterEncodingFilter.java: > 88) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequest > Filter.java: > 76) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequest > Filter.java: > 70) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFi > lter.java: > 58) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans > actionCleanupFilter.java: > 43) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFile > Filter.java: > 122) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: > 388) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: > 216) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: > 182) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: > 765) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > 418) > at > com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEn > gineWebAppContext.java: > 70) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) > at com.google.appengine.tools.development.JettyContainerService > $ApiProxyHandler.handle(JettyContainerService.java:351) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: > 542) > at org.mortbay.jetty.HttpConnection > $RequestHandler.headerComplete(HttpConnection.java:923) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java: > 409) > at org.mortbay.thread.QueuedThreadPool > $PoolThread.run(QueuedThreadPool.java:582) > > Class User : > package com.vht.app.om.admin; > > import java.io.Serializable; > import java.sql.Timestamp; > import java.util.Set; > > import javax.jdo.annotations.IdGeneratorStrategy; > import javax.jdo.annotations.IdentityType; > import javax.jdo.annotations.PersistenceCapable; > import javax.jdo.annotations.Persistent; > import javax.jdo.annotations.PrimaryKey; > > import com.google.appengine.api.datastore.Key; > > @PersistenceCapable(identityType = IdentityType.APPLICATION) > public class User implements Serializable { > @PrimaryKey > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > private Key key; > @Persistent > private String username; > > @Persistent > private String password; > > @Persistent > private String firstName; > > @Persistent > private String lastName; > > @Persistent > private int age; > > @Persistent(mappedBy = "userCreate") > private Set<Location> locationCreate; > > @Persistent > private Set<Location> locationCheckIn; > > public Key getKey() { > return key; > } > > public void setKey(Key key) { > this.key = key; > } > > public String getUsername() { > return username; > } > > public void setUsername(String username) { > this.username = username; > } > > public String getPassword() { > return password; > } > > public void setPassword(String password) { > this.password = password; > } > > public String getFirstName() { > return firstName; > } > > public void setFirstName(String firstName) { > this.firstName = firstName; > } > > public String getLastName() { > return lastName; > } > > public void setLastName(String lastName) { > this.lastName = lastName; > } > > public int getAge() { > return age; > } > > public void setAge(int age) { > this.age = age; > } > > public Set<Location> getLocationCreate() { > return locationCreate; > } > > public void setLocationCreate(Set<Location> locationCreate) { > this.locationCreate = locationCreate; > } > > public Set<Location> getLocationCheckIn() { > return locationCheckIn; > } > > public void setLocationCheckIn(Set<Location> locationCheckIn) { > this.locationCheckIn = locationCheckIn; > } > > } > > Class Loation : > > package com.vht.app.om.admin; > > import java.io.Serializable; > > import javax.jdo.annotations.IdGeneratorStrategy; > import javax.jdo.annotations.IdentityType; > import javax.jdo.annotations.PersistenceCapable; > import javax.jdo.annotations.Persistent; > import javax.jdo.annotations.PrimaryKey; > > import com.google.appengine.api.datastore.Key; > > @PersistenceCapable(identityType = IdentityType.APPLICATION) > public class Location implements Serializable { > > @PrimaryKey > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > private Key key; > > @Persistent > private String name; > > @Persistent > private User userCreate; > > public Key getKey() { > return key; > } > > public void setKey(Key key) { > this.key = key; > } > > public String getName() { > return name; > } > > public void setName(String name) { > this.name = name; > } > > public User getUserCreate() { > return userCreate; > } > > public void setUserCreate(User userCreate) { > this.userCreate = userCreate; > } > > } > > Problem : javax.jdo.JDOFatalUserException: Error in meta-data for > com.vht.app.om.admin.User.locationCreate: Class > com.vht.app.om.admin.User has multiple relationship fields of type > com.vht.app.om.admin.Location: locationCreate and locationCheckIn. > This is not yet supported. > Please help me ! -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
