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.

Reply via email to