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 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.

Attachment: TestRace.java
Description: Binary data

Attachment: Race.java
Description: Binary data

Attachment: Result.java
Description: Binary data

Attachment: Runner.java
Description: Binary data

Reply via email to