【问题标题】:Objectify/Datastore - transaction inside a transactionObjectify/Datastore - 事务中的事务
【发布时间】:2019-03-16 21:31:26
【问题描述】:

如果您将事务放入 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;
});

【问题讨论】:

    标签: google-cloud-datastore objectify


    【解决方案1】:

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

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

    你想问什么没有回答的问题?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-18
    • 2021-09-22
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多