The error is here in the stack trace: javax.jdo.JDOFatalUserException: Error in meta-data for com.moviediary.datastore.Movie.actresses: Class com.moviediary.datastore.Movie has multiple relationship fields of type com.moviediary.datastore.Person: actresses and actor. This is not yet supported.
You can only have one list with multiple child classes. Instead, store Lists of keys. On Sat, Sep 18, 2010 at 9:47 AM, laden <[email protected]> wrote: > Hi All, > > I am Nutan developing an application using Google App Engine and Java. > > <code> > @PersistenceCapable(identityType = IdentityType.APPLICATION) > public class Movie { > > @PrimaryKey > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > private Key movieId; > > @Persistent > private String movieName; > > @Persistent > private Language language; > > @Persistent(mappedBy="movie") > private List<Person> actor; > > @Persistent(mappedBy="movie") > private List<Person> actresses; > } > </code> > This is Movie data class where actor is a list. > Where person class is below > <code> > @PersistenceCapable(identityType = IdentityType.APPLICATION) > public class Person { > > @PrimaryKey > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > private Key personId; > > @Persistent > private String personName; > > @Persistent > private String gender; > > @Persistent > private int categoryId; > > @Persistent > private Movie movie; > } > </code> > But when I'm trying to save movie using the following code > <code> > Country c = new Country(); > c.setCountryName("India"); > Movie m = new Movie(); > m.setMovieName("Athadu"); > m.setCountry(c); > m.setRating("5"); > Person p = new Person(); > p.setPersonName("Mahesh Babu"); > p.setGender("Male"); > ArrayList actors = new ArrayList(); > actors.add(p); > m.setActor(actors); > PersistenceManager pm = PMF.get().getPersistenceManager(); > try { > pm.makePersistent(m); > } finally { > pm.close(); > } > </code> > The following error is coming. > javax.jdo.JDOFatalUserException: Error in meta-data for > com.moviediary.datastore.Movie.actresses: Class > com.moviediary.datastore.Movie has multiple relationship fields of > type com.moviediary.datastore.Person: actresses and actor. This is > not yet supported. > at > > org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java: > 354) > at > > org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java: > 674) > at > > org.datanucleus.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java: > 694) > at com.moviediary.MovieDiary2Servlet.doGet(MovieDiary2Servlet.java: > 32) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: > 511) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1166) > at > > com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java: > 58) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: > 43) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > > com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.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(DevAppEngineWebAppContext.java: > 70) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) > at com.google.appengine.tools.development.JettyContainerService > $ApiProxyHandler.handle(JettyContainerService.java:349) > 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) > > > Please suggest how to solve this issue. Thank you in advance. > > -- > 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]<google-appengine%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > -- 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.
