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;
}
});
我得到
用于
get()
调用的行。为什么?我只在此事务中查询
Visit
实体。我正在事务中执行此操作,因为我希望所有这些操作都作为原子操作执行。
最佳答案
无法在事务内进行无祖先查询。您可以不进行事务处理,也可以将查询替换为get。
您可以做的最接近的是: