【发布时间】:2017-02-09 05:59:24
【问题描述】:
我尝试使用对象化事务,但是当我需要重新加载在同一事务中创建的对象时遇到了一些问题。
获取此示例代码
@Entity
public class MyObject
{
@Parent
Key<ParentClass> parent;
@Index
String foo;
}
ofy().transact(new VoidWork()
{
@Override
public void vrun()
{
ParentClass parent = load();// load the parent
String fooValue = "bar";
Key<ParentClass> parentKey = Key.create(ParentClass.class, parent.getId())
MyObject myObject = new MyObject(parentKey);
myObject.setFoo(fooValue);
ofy().save().entity(myObject).now();
MyObject reloaded = ofy().load().type(MyObject.class).ancestor(parentKey).filter("foo", fooValue).first().now();
if(reloaded == null)
{
throw new RuntimeException("error");
}
}
});
我重新加载的对象始终为空,也许我错过了什么,但从逻辑上讲,在事务中我可以查询在同一事务中创建的对象?
谢谢
【问题讨论】:
标签: java google-app-engine transactions objectify