如何关闭 Apache Olingo OData 2.0 缓存?
Posted
技术标签:
【中文标题】如何关闭 Apache Olingo OData 2.0 缓存?【英文标题】:How to switch off Apache Olingo OData 2.0 caching? 【发布时间】:2014-12-10 17:57:58 【问题描述】:如何关闭 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"
问题是,我正在缓存此数据记录的先前版本,即使在过滤请求期间它是根据新值选择的。
【问题讨论】:
【参考方案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 数据已更改)。
【讨论】:
以上是关于如何关闭 Apache Olingo OData 2.0 缓存?的主要内容,如果未能解决你的问题,请参考以下文章
Apache Olingo OData 2.0 不支持 Java 8 LocalDatetime (java.time)
如何在 Java SpringBoot 项目中集成 Olingo(Odata)
Apache Olingo 4.2 API 抛出 java.lang.IllegalArgumentException
Olingo Odata v4 - 从模型生成类型、集合和元数据