I'm aware of the restriction on operating on multiple entity groups in
a single transaction, but I thought the following code would work (but
it doesnt):
Transaction tx = null;
try {
tx = pm.currentTransaction();
ClassA existing = getExistingByQuery(pm);
if(existing != null) {
// 1st transaction
tx.begin();
existing.setStuff("yo");
tx.commit();
if(existing.isDingBat()) {
// 2nd transaction
tx.begin();
ClassB other = new ClassB();
other.setStuff("wow");
pm.makePersistent(other); // (***)
tx.commit();
}
}
} catch (Exception e) {
if(tx != null && tx.isActive()) {
tx.rollback();
}
}
However, I get an exception at the line marked (***):
java.lang.IllegalArgumentException: can't operate on multiple entity
groups in a single transaction.
How do I get another transaction then? Do i need to create a new
PersistenceManager for the second part? In this simplified example, I
could forego the second transaction entirely, but that might not
always be the case, so what's the general solution?
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---