作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚注意到 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/
我是一名优秀的程序员,十分优秀!