Hello,

I am having a strange problem with persisting a collection of a POJO
using the JDO in GAE.  For example, the following data classes would
persist fine:

// This works
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class JDOData {
   @PrimaryKey
   private String key;
   @Persistent
   private List<MyLong> MyLongs;
}

@PersistenceCapable()
@EmbeddedOnly
public class MyLong{
   @Persistent
   private long myLong;
}


But JDOData will no longer persist if I change it to the following:

// This no longer works
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class JDOData {
   @PrimaryKey
   private String key;
   @Persistent
   private MyLongList myLongList;
}

@PersistenceCapable()
@EmbeddedOnly
public class MyLongList{
   @Persistent
   private List<MyLong> MyLongs;
}

@PersistenceCapable()
@EmbeddedOnly
public class MyLong{
   @Persistent
   private long myLong;
}

I got the following exceptions when persisting the changes above:
javax.jdo.JDOFatalUserException: Specified class class
java.lang.String is not persistable
        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)


The last stack trace is cryptic.  Do I have a problem in my data class
definitions or is it because GAE cannot persist embedded collections
two level down?

Thanks,
yc

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to