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
在此事务中查询实体。我在事务中执行此操作,因为我希望所有这些都作为原子操作执行。