Что произойдет, если вы поместите транзакцию внутри транзакции в objectify / datastore? Каков порядок исполнения и как все решается?
Например,
1) Если внутренняя транзакция завершится неудачно, будет ли также завершена внешняя транзакция?
2) Если внешняя транзакция завершится неудачно, будет ли откатана внутренняя транзакция, если она завершилась?
// Outer Transaction
Thing th = ofy().transact(() -> {
Thing thing = ofy().load().key(thingKey).now();
thing.modify();
ofy().save().entity(thing);
// Inner Transaction
// This transaction could be in another method used in various other places
Thing th2 = ofy().transact(() -> {
Thing thing2 = ofy().load().key(thingKey2).now();
thing2.modify();
Thing thing2 = ofy().load().key(thingKey3).now();
thing3.modify();
ofy().save().entity(thing2);
ofy().save().entity(thing3);
return thing;
});
return thing;
});