Could you please post all the model objects that are involved in the
example?  Looks like SpeciesStats is missing.  Also, it would be great if
you could post the code that shows how you populate the Community object
before persisting.

Thanks,
Max

On Wed, Dec 9, 2009 at 11:40 AM, Max Ross (Google) <
[email protected] <maxr%[email protected]>> wrote:

> Thanks for the report, investigating now....
>
>
> On Tue, Dec 8, 2009 at 2:33 PM, Pierre Lavignotte <
> [email protected]> wrote:
>
>> Hi,
>>
>> I have a problem when I try to inherit a one-to-many relation ship
>> from a base entity class.
>>
>> The following model works fine :
>>
>> @PersistenceCapable(identityType = IdentityType.APPLICATION)
>> @Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE)
>> public abstract class BaseEntity {
>>
>>        @PrimaryKey
>>        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
>>        private Key key;
>>
>>        public Key getKey() {
>>                return key;
>>        }
>> }
>>
>> @PersistenceCapable(identityType = IdentityType.APPLICATION)
>> public class Community extends BaseEntity {
>>
>>        @Persistent
>>        @Element(dependent = "true")
>>        private List<SpeciesStats> stats = new ArrayList<SpeciesStats>();
>>
>>        public List<SpeciesStats> getStats() {
>>                return stats;
>>        }
>>
>>        @Persistent(dependent = "true")
>>        TackleBox tackleBox;
>>
>>        public TackleBox getTackleBox() {
>>                return tackleBox;
>>        }
>>
>>        public void setTackleBox(TackleBox tackleBox) {
>>                this.tackleBox = tackleBox;
>>        }
>> }
>>
>> @PersistenceCapable(identityType = IdentityType.APPLICATION)
>> public class TackleBox extends BaseEntity {
>> /* some other properties that eventually extend BaseEntity and so on
>> */
>> }
>>
>> But if I move "private List<SpeciesStats> stats" from Community to
>> BaseEntity, I get a runtime exception when trying to read a Community
>> entity :
>> Caused by: java.lang.NullPointerException
>>        at org.datanucleus.store.appengine.DatastoreTable.runCallBacks
>> (DatastoreTable.java:1025)
>>        at org.datanucleus.store.appengine.DatastoreTable.initializeNonPK
>> (DatastoreTable.java:391)
>>        at org.datanucleus.store.appengine.DatastoreTable.buildMapping
>> (DatastoreTable.java:285)
>>        at org.datanucleus.store.appengine.DatastoreManager.buildStoreData
>> (DatastoreManager.java:405)
>>        at org.datanucleus.store.appengine.DatastoreManager.newStoreData
>> (DatastoreManager.java:363)
>>        at org.datanucleus.store.AbstractStoreManager.addClasses
>> (AbstractStoreManager.java:788)
>>        at org.datanucleus.store.AbstractStoreManager.addClass
>> (AbstractStoreManager.java:759)
>>        at
>> org.datanucleus.store.mapped.MappedStoreManager.getDatastoreClass
>> (MappedStoreManager.java:358)
>>        at
>> org.datanucleus.store.appengine.DatastoreManager.getDatastoreClass
>> (DatastoreManager.java:631)
>>        at
>> org.datanucleus.store.appengine.query.DatastoreQuery.performExecute
>> (DatastoreQuery.java:212)
>>        at org.datanucleus.store.appengine.query.JDOQLQuery.performExecute
>> (JDOQLQuery.java:85)
>>        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)
>>
>> Or trying to persist one :
>>
>> java.lang.NullPointerException
>>        at org.datanucleus.store.appengine.DatastoreTable.runCallBacks
>> (DatastoreTable.java:1025)
>>        at org.datanucleus.store.appengine.DatastoreTable.initializeNonPK
>> (DatastoreTable.java:391)
>>        at org.datanucleus.store.appengine.DatastoreTable.buildMapping
>> (DatastoreTable.java:285)
>>        at org.datanucleus.store.appengine.DatastoreManager.buildStoreData
>> (DatastoreManager.java:405)
>>        at org.datanucleus.store.appengine.DatastoreManager.newStoreData
>> (DatastoreManager.java:363)
>>        at org.datanucleus.store.AbstractStoreManager.addClasses
>> (AbstractStoreManager.java:788)
>>        at org.datanucleus.store.AbstractStoreManager.addClass
>> (AbstractStoreManager.java:759)
>>        at
>> org.datanucleus.store.mapped.MappedStoreManager.getDatastoreClass
>> (MappedStoreManager.java:358)
>>        at
>> org.datanucleus.store.appengine.DatastoreManager.getDatastoreClass
>> (DatastoreManager.java:631)
>>        at
>> org.datanucleus.store.appengine.DatastoreFieldManager.buildMappingConsumer
>> (DatastoreFieldManager.java:1008)
>>        at
>> org.datanucleus.store.appengine.DatastoreFieldManager.buildMappingConsumer
>> (DatastoreFieldManager.java:998)
>>        at org.datanucleus.store.appengine.DatastoreFieldManager.<init>
>> (DatastoreFieldManager.java:133)
>>        at org.datanucleus.store.appengine.DatastoreFieldManager.<init>
>> (DatastoreFieldManager.java:167)
>>        at
>>
>> org.datanucleus.store.appengine.DatastorePersistenceHandler.insertPreProcess
>> (DatastorePersistenceHandler.java:316)
>>        at
>> org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects
>> (DatastorePersistenceHandler.java:236)
>>        at
>> org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObject
>> (DatastorePersistenceHandler.java:225)
>>        at org.datanucleus.state.JDOStateManagerImpl.internalMakePersistent
>> (JDOStateManagerImpl.java:3185)
>>        at org.datanucleus.state.JDOStateManagerImpl.makePersistent
>> (JDOStateManagerImpl.java:3161)
>>        at org.datanucleus.ObjectManagerImpl.persistObjectInternal
>> (ObjectManagerImpl.java:1298)
>>        at org.datanucleus.ObjectManagerImpl.persistObject
>> (ObjectManagerImpl.java:1175)
>>        at org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent
>> (JDOPersistenceManager.java:669)
>>        at org.datanucleus.jdo.JDOPersistenceManager.makePersistent
>> (JDOPersistenceManager.java:694)
>>
>> Same thing if Community inherits from another class that have a
>> List<SpeciesStats> properties, so Community is the only class that
>> have this property.
>>
>> What's wrong ? Did I miss something with the anotations ?
>>
>> Thanks,
>> Pierre
>>
>> --
>>
>> 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
>> [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<google-appengine-java%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine-java?hl=en.
>>
>>
>>
>

--

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 [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-java?hl=en.


Reply via email to