RCB*_*RCB 4 google-app-engine persistence objectify google-cloud-datastore
我的servlet应该执行以下操作:当用户在场地注册时,我会检查他当前是否在某处注册(即使它是同一地点),如果是,请取消注册并再次注册.
我有以下代码,为了显示我的问题,我已经简化了:
Date tempDate = new Date();
Visit v = ofy().load().type(Visit.class)
.filter(Visit.USER_ID, 5L)
.filter(Visit.EXIT_DATE, null).first().get();
if(v != null)
exitVenue(5L, 7L, tempDate);
Visit visit = new Visit(5L, 7L, tempDate);
ofy().save().entity(visit).now();
Date tempDate2 = new Date();
Visit v2 = ofy().load().type(Visit.class)
.filter(Visit.USER_ID, 5L)
.filter(Visit.EXIT_DATE, null).first().get();
if(v2 != null)
exitVenue(5L, 7L, tempDate2);
Visit visit2 = new Visit(5L, 7L, tempDate2);
ofy().save().entity(visit2).now();
}
public void exitVenue(Long userID, Long venueID, Date exitDate) {
Visit visit = ofy().load().type(Visit.class)
.filter(Visit.USER_ID, userID)
.filter(Visit.VENUE_ID, venueID)
.filter(Visit.EXIT_DATE, null).first().get();
if(visit == null){
log.info("ERROR : User " + userID + " exited venue " + venueID + ", but Visit was not found");
return;
}
visit.setExitDate(exitDate);
ofy().save().entity(visit).now();
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我第二次执行所有这些操作时,并不总是发现数据存储区中已经存在访问(每隔一个测试,或者左右).我很困惑不是'now()'假设立即存储它然后才继续运行?
Dan,非常感谢你的帮助
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |