boolean r = ofy().transact(new Work<Boolean>() {
@Override
public Boolean run() {
Visit visit = ofy().load().type(Visit.class)
.filter(Visit.USER_ID, userID)
.filter(Visit.VENUE_ID, venueID).first().get();
if (visit == null)
return false;
visit.setLastRequestDate(new Date(timestamp));
ofy().save().entity(visit).now();
return true;
}
});
java.lang.IllegalArgumentException异常:只有祖先查询被允许内部事务。
用于调用get()
的行。
为什么?我只在此事务中查询Visit
实体。 我在交易中这样做,因为我希望所有这些都是作为原子操作来执行的。
谢谢你这是一个伟大的工作,它也将帮助我在另一个查询。 – RCB
感谢您的解释是有道理的!我想知道...文档说你可以访问xg-transactions中的根实体,但是当我尝试时,我遇到了这个 –
我很新的w/Objectify ...有人可以清除零件“...将查询替换为得到...?”不知道这意味着什么。谢谢! –