persistence.xml で次のプロパティを使用して、Eclipse indigo で EclipseLink の L2 キャッシュを無効にしようとしました。
<property name="eclipselink.cache.shared.default" value="false"/>
<shared-cache-mode>NONE</shared-cache-mode>
基本的に、2 つの異なるセッションで作成された同じオブジェクトがデータベースに 2 回ヒットするか、両方のセッションがメモリ キャッシュ内の以前のセッションで作成された同じオブジェクトを参照しているか、1 つのシナリオをテストしています。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);
何か見逃しているかどうか助けてください。または、他の方法で行う必要がありますか??