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 ...有人可以清除零件「...將查詢替換爲得到...?」不知道這意味着什麼。謝謝! –