gpt4 book ai didi

objectify - 如何阻止 Objectify 返回缓存值?

转载 作者:行者123 更新时间:2023-12-02 05:10:08 25 4
gpt4 key购买 nike

我正在像这样使用 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() ,但这不是必需的,因为我可以在数据存储中验证操作是否已完成。我真的很希望能够加载我刚刚保存的数据。我做错了什么?

最佳答案

我做错的是没有阅读手册而忘记了一个步骤。

Objectify requires a filter to clean up any thread-local transaction contexts and pending asynchronous operations that remain at the end of a request. Add this to your WEB-INF/web.xml:

<filter>
<filter-name>ObjectifyFilter</filter-name>
<filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ObjectifyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

好吧,检查你是否得到了你真正不期望的缓存值是件好事。

关于objectify - 如何阻止 Objectify 返回缓存值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15607670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com