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
このトランザクションでエンティティにクエリを実行しているだけです。これはすべてアトム操作として実行したいので、トランザクションで実行しています。