1

如何关闭 Apache Olingo 2.0 缓存?

Web 应用程序在 Tomcat 7 中运行并使用 MySQL。它基于 Apache Olingo OData JPA 处理器构建。

当我更新数据库中的数据记录时,我可以通过这种请求正确找到该数据记录:“GET /interactive-riga-odata/webservices.svc/Statuss?$filter=(Updated%20gt%20datetime%272014-10 -15T12:25:44.054%27) HTTP/1.1"

问题是,我正在缓存此数据记录的先前版本,即使在过滤请求期间它是根据新值选择的。

4

1 回答 1

1

原来,必须禁用或清空 EclipseLink ORM 缓存。

可以通过在模型文件中添加注释来禁用它,如下所示:

@Entity
@Cacheable(false)
public class Employee {

或者通过将这些行之一放在persistance.xml 文件中:

<property name="eclipselink.cache.shared.default" value="false"/>

<shared-cache-mode>NONE</shared-cache-mode>

如果尝试使用数据缓存创建解决方案,则可以使用某些 Web 服务在数据库发生某些更改后触发缓存失效(管理界面应用程序 ping Web 服务以让他们知道 MySQL 数据已更改)。

于 2014-10-15T17:42:03.143 回答