Java 无法从数据存储密钥中获取实体
我使用的是一个(并围绕它构建了我们的应用程序)代码Java 无法从数据存储密钥中获取实体,java,google-app-engine,Java,Google App Engine,我使用的是一个(并围绕它构建了我们的应用程序)代码 Key key = put(thing); Thing thing = get(Thing.class, key); 上面的代码非常有效 现在,有一种putinransaction方法: @Override public Key putInTransaction(Object object) { Transaction tx = _ds.beginTransaction(_options); Key result = null
Key key = put(thing);
Thing thing = get(Thing.class, key);
上面的代码非常有效
现在,有一种putinransaction
方法:
@Override
public Key putInTransaction(Object object) {
Transaction tx = _ds.beginTransaction(_options);
Key result = null;
try {
result = put(object);
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
} finally {
if (tx.isActive()) {
tx.rollback();
}
}
return result;
}
我比较了put(thing)
和putinransaction(thing)
code中的键,以及它具有相同种类
、id
、名称
和appIdNamespace
的相同数据存储key
现在的问题是,在对
putIntransaction(Thing)
进行JUnit测试时,当使用get(Thing.class,key)
键时,它不会返回实体,而使用put(Thing)
进行测试时,它工作正常这里可能有什么问题?答案是需要添加的代码中缺少数据存储事务提交。我看不到您在任何地方提交事务?!