我有一个缓存和JPA实体(EclipseLink的2.4.1)+吉斯持久化一个奇怪的行为
我不会使用缓存,但我得到随机在 MySQL数据库已经改变了旧的实例 。
我曾尝试以下:
添加@可缓存(假)的JPA实体。
禁用persistence.xml文件缓存属性:
<class>MyEntity</class>
<shared-cache-mode>NONE</shared-cache-mode>
<properties>
<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.refresh" value="true"/>
<property name="eclipselink.query-results-cache" value="false"/>
<property name="eclipselink.weaving" value="false"/>
</properties>
即使激活跟踪的EclipseLink,我看到了JPQL查询:
ReadObjectQuery执行查询(名称= “的readObject” referenceClass = XX SQL = “...(只拨打电话”找到“了EntityManager
但是,但是随机返回一个类的旧值。
注意
也许碰巧使用的EntityManager的不同情况和每个人都有自己的缓存? 我已经看到了以下相关岗位:禁用JPA的EclipseLink 2.4缓存如果是这样,可以清除所有的EntityManager的缓存使用内部消除:???? 。em.getEntityManagerFactory()getCache()evictAll(); 是否有可能清除所有的缓存使用内部消除?evictALL