gpt4 book ai didi

java - GAE : Do puts and gets inside a cross group transaction (XG) need to be called with the transaction as parameter?

转载 作者:行者123 更新时间:2023-12-01 13:42:22 25 4
gpt4 key购买 nike

我刚刚注意到 docs' example对于 XG 交易,使用包含交易作为参数的 put 方法,但它没有提到这样做的必要性。

TransactionOptions options = TransactionOptions.Builder.withXG(true);
Transaction txn = datastore.beginTransaction(options);

Entity a = new Entity("A");
a.setProperty("a", 22);
datastore.put(txn, a);

Entity b = new Entity("B");
b.setProperty("b", 11);
datastore.put(txn, b);

txn.commit();

根据API单参数 put(和 get)使用事务:

If there is a current transaction, this operation will execute within that transaction

我关心的是 XG 交易。如果我在该示例中仅使用为两个实体放置的单个参数(并且我有很多类似的代码),它们仍然会在 XG 事务内执行吗?

最佳答案

是的,它们仍然会在 XG 事务中执行。

如果您没有显式指定事务,则将使用最近创建的事务。 DatastoreService 存储使用 beginTransaction 创建的事务堆栈,并在没有显式事务的情况下执行 put 时使用顶部事务。它不会以任何不同的方式对待您的 XG 事务,它只是将其从堆栈中拉出并使用它。

关于java - GAE : Do puts and gets inside a cross group transaction (XG) need to be called with the transaction as parameter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20623158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com