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.

Reply via email to