Objectify/Datastore - 交易中的交易

Objectify/Datastore - transaction inside a transaction

如果您将一个交易放在 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;
});

这里有大量关于此的文档:

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

您想问什么问题那里没有答案?