Objectify / Datastore - транзакция внутри транзакции - PullRequest
0 голосов
/ 17 марта 2019

Что произойдет, если вы поместите транзакцию внутри транзакции в 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;
});

1 Ответ

0 голосов
/ 17 марта 2019

Об этом имеется обширная документация:

https://github.com/objectify/objectify/wiki/Transactions

Какой вопрос вы хотите задать, на который нет ответа?

...