gpt4 book ai didi

java - GAE 请求根实体上的 XG 交易

转载 作者:太空宇宙 更新时间:2023-11-04 15:10:42 28 4
gpt4 key购买 nike

我正在尝试使用以下代码添加一个新的根实体:

    try {
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Key eventKey = datastore.allocateIds("Event", 1).getStart();
String keyString = KeyFactory.keyToString(eventKey);

//TransactionOptions options = TransactionOptions.Builder.withXG(true);
Transaction txn = datastore.beginTransaction();
Entity eventEntity = new Entity("Event", keyString);

datastore.put(eventEntity);

txn.commit();
} catch (Exception e) {
log.log(Level.SEVERE, e.getMessage(), e);
throw new InternalServerErrorException(e);
}

这是一个简单的事务数据存储插入,根据 documents假设可以工作 -

each root entity belongs to a separate entity group, so a single transaction cannot create or operate on more than one root entity unless it is an XG transaction

我的“事件”实体没有任何祖先,我只在事务内处理它。但由于某种原因,我得到以下异常:

java.lang.IllegalArgumentException: cross-group transaction need to be explicitly specified, see TransactionOptions.Builder.withXGfound both Element { type: "Event" id: 4 } and Element { type: "Event" name: "ahBldmVudHNmaW5kZXIyMDEzcgsLEgVFdmVudBgEDA" }

知道这里出了什么问题吗?

最佳答案

你的代码对我有用。我将它粘贴到一个正在运行的简单应用程序的中间,运行它两次,它创建了两个“事件”实体,并且没有抛出任何异常。您的应用程序在其他地方有问题。

关于java - GAE 请求根实体上的 XG 交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21365321/

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