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.

Reply via email to