客观/数据存储 - 交易中的事务



如果您将事务放入Abjigitify/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/obignify/wiki/wiki/transactions

您想问什么问题?

相关内容

最新更新