我已经尝试通过在 persistence.xml 中使用以下属性来禁用 EclipseLink 中的 L2 缓存和 Eclipse indigo:-
<property name="eclipselink.cache.shared.default" value="false"/>
<shared-cache-mode>NONE</shared-cache-mode>
基本上我正在测试一个场景,无论是在两个不同的会话中创建的同一个对象两次访问数据库还是两个会话都引用在内存缓存中的早期会话中创建的同一个对象。这不应该是因为通过在 persistence.xml 中提及上述属性禁用了 L2 缓存
我的代码如下: -
Session session = DataAccessManager.getManager().openSession();
ReferenceObjectRepository referenceObjectRepository = ReferenceObjectRepository.getInstance();
ReferenceObjectKey referenceObjectKey = new ReferenceObjectKey(getStringValue("testCacheByPass.input"));
//load object first time.
ReferenceObject referenceObject = referenceObjectRepository.load(ReferenceObject.class, referenceObjectKey);
logger.log(Level.SEVERE, "Cache ReferenceObject: " + referenceObject);
//load object in another session
Session sessionNew = DataAccessManager.getManager().openNewSession();
Object dbObject = referenceObjectRepository.load(ReferenceObject.class, referenceObjectKey);
logger.log(Level.SEVERE, "DB loaded ReferenceObject: " + dbObject);
请帮助我是否错过了什么?还是我需要以其他方式做到这一点?