我正在使用 Objectify 保存一个对象,如下所示:
Thing th = new Thing();
th.identifier = thingId;
th.name = thingName;
th.json = thingData;
ofy().save().entity(thing);
pResponse.setStatus(200);
pResponse.getWriter().println("OK");
我使用 GAE 数据存储浏览器验证数据库中的值已更新。我在本地运行。然后我加载所有这样的东西:
Map<String, List<Thing>> responseJsonMap = new HashMap<String, List<Thing>>();
List<Thing> things = ofy().load().type(Thing.class).list();
responseJsonMap.put("things", things);
pResponse.setContentType("application/json");
try {
GSON.toJson(responseJsonMap, pResponse.getWriter());
} ...
我得到的是保存之前存在的数据。我尝试关闭实体上的缓存并调用ofy().clear()
,但都不起作用。如果我重新启动服务器或等待足够长的时间,保存的数据就会通过。我也尝试.now()
在保存后添加,但这不是必需的,因为我可以在数据存储中验证操作已完成。我真的很想能够加载我刚刚保存的数据。我究竟做错了什么?