我正在尝试禁用 EclipseLink 2.4 缓存,因此如果数据在 DB 中被其他应用程序更改,相同的数据会在我使用 EclipseLink 2.4 的应用程序中刷新,而无需重新启动它。这些属性似乎都不起作用:
<shared-cache-mode>NONE</shared-cache-mode>
...
<property name="eclipselink.cache.shared.default" value="false"/>
<property name="eclipselink.cache.size.default" value="0"/>
<property name="eclipselink.cache.type.default" value="NONE"/>
<property name="eclipselink.query-results-cache" value="false"/>
<property name="eclipselink.refresh" value="true"/>
唯一有帮助的选择是:
typedQuery.setHint(QueryHints.REFRESH, HintValues.TRUE);
但这对我来说不是一个选择,因为现在编写了该应用程序,我不想搜索所有查询或em.find()
方法并将此提示放入。
EDIT1:这里描述了类似的问题:http: //eclipse.1072660.n5.nabble.com/Notifications-about-external-database-changes-td5389.html
EDIT2:总而言之,我希望所有查询和查找调用都会刷新从数据库中获取的数据。