Hi, As the message says: you can't touch objects in more than 1 group in a single transaction.
If it suits your needs you can put all the children of a Parent in a single entity group defined by the Parent instance: see http://code.google.com/appengine/docs/java/datastore/entities.html#Entity_Groups_and_Ancestor_Paths for all details regards didier On Jun 13, 12:36 pm, behappy <[email protected]> wrote: > Hello everybody ! > I've got a problem, can anyone help me please ? > > I have to persistent classes Parent and Child. They look like > this : > > Parent { > Key key; > .... > List<Child> childs .... > .... > > } > > Child { > > Key key; > .... > Parent parent..... > ..... > public void setParent(Parent parent){ > this.parent = parent; > > } > } > > The code is: > ..... > transaction.begin(); > Parent new_parent = pm.getObjectById(new_parent_id); > child.set(new_parent); > pm.makePersistent(child); > transaction.commit(); > ....... > > After executing that code i've got a problem: > > can't operate on multiple entity groups in a single transaction. > > can't operate on multiple entity groups in a single transaction. found > both Element { > [java] type: "Category" > [java] id: 2 > [java] } > [java] and Element { > [java] type: "Category" > [java] id: 4 > [java] } > [java] at > com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java: > 36) > [java] at com.google.appengine.api.datastore.DatastoreApiHelper > $1.convertException(DatastoreApiHelper.java:98) > [java] at > com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java: > 69) > [java] at com.google.appengine.api.datastore.FutureHelper > $CumulativeAggregateFuture.get(FutureHelper.java:136) > [java] at com.google.appengine.api.datastore.FutureHelper > $TxnAwareFuture.get(FutureHelper.java:213) > [java] at > com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java: > 67) > [java] at > com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java: > 71) > [java] at > com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java: > 58) > [java] at > com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java: > 55) > [java] at > org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.get(RuntimeExceptionWrappingDatastoreService.java: > 64) > [java] at > org.datanucleus.store.appengine.DatastorePersistenceHandler.get(DatastorePersistenceHandler.java: > 96) > [java] at > org.datanucleus.store.appengine.DatastorePersistenceHandler.get(DatastorePersistenceHandler.java: > 106) > [java] at > org.datanucleus.store.appengine.DatastorePersistenceHandler.fetchObject(DatastorePersistenceHandler.java: > 478) > [java] at > org.datanucleus.state.JDOStateManagerImpl.validate(JDOStateManagerImpl.java: > 4263) > [java] at > org.datanucleus.ObjectManagerImpl.findObject(ObjectManagerImpl.java: > 2444) > [java] at > org.datanucleus.jdo.JDOPersistenceManager.getObjectById(JDOPersistenceManager.java: > 1671) > [java] at > org.datanucleus.jdo.JDOPersistenceManager.getObjectById(JDOPersistenceManager.java: > 1767) > [java] at > org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager.getObjectById(DatastoreJDOPersistenceManager.java: > 73) > [java] at almatymaps.dao.CategoryDAO.getById(CategoryDAO.java: > 34) > [java] at > almatymaps.servlets.UpdateMarker.doPost(UpdateMarker.java:67) > ............... > > Thanks. -- 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.
