Hello, I am very new to appengine, and I am trying a very basic model exemple: A Race class is linked to a Runner class through a Result class
When I am running the folloging code (the full code is attached):
Race race = new Race("Paris", new Date(), 10);
Runner runner1 = new Runner("Smith");
Runner runner2 = new Runner("John");
Result result1 = new Result(race, runner1, 1);
Result result2 = new Result(race, runner2, 2);
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
race = pm.makePersistent(race);
runner1 = pm.makePersistent(runner1);
runner2 = pm.makePersistent(runner2);
pm.makePersistent(result1);
pm.makePersistent(result2);
} finally {
pm.close();
}
I get the following error:
Detected attempt to establish Result(4) as the parent of Runner(2) but the
entity identified by Runner(2) has already been persisted without a parent.
A parent cannot be established or changed once an object has been persisted.
org.datanucleus.store.appengine.FatalNucleusUserException: Detected attempt
to establish Result(4) as the parent of Runner(2) but the entity identified
by Runner(2) has already been persisted without a parent. A parent cannot
be established or changed once an object has been persisted.
at
org.datanucleus.store.appengine.DatastoreRelationFieldManager.checkForParentSwitch(DatastoreRelationFieldManager.java:204)
at
org.datanucleus.store.appengine.DatastoreRelationFieldManager$1.setObjectViaMapping(DatastoreRelationFieldManager.java:125)
at
org.datanucleus.store.appengine.DatastoreRelationFieldManager$1.apply(DatastoreRelationFieldManager.java:104)
at
org.datanucleus.store.appengine.DatastoreRelationFieldManager.storeRelations(DatastoreRelationFieldManager.java:78)
at
org.datanucleus.store.appengine.DatastoreFieldManager.storeRelations(DatastoreFieldManager.java:812)
at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertPostProcess(DatastorePersistenceHandler.java:288)
at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects(DatastorePersistenceHandler.java:241)
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)
at race.TestRace.test2(TestRace.java:58)
Any idea how I could solve this ?
Thank you in advance
Rodolphe
--
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.
TestRace.java
Description: Binary data
Race.java
Description: Binary data
Result.java
Description: Binary data
Runner.java
Description: Binary data
