EclipseLink のソース コードを調べたところ、永続コンテキスト (分離キャッシュ) に格納されているオブジェクトは、エンティティ クラスごとに identityMaps というマップに配置されていることがわかりました。そのマップには、その型のすべてのオブジェクトが格納されています。
次の方法を使用して、マップの内容を印刷できます。
public interface IdentityMapAccessor {
/**
* PUBLIC:
* Used to print all the Objects in the identity map of the given Class type.
* The output of this method will be logged to this session's SessionLog at SEVERE level.
*/
public void printIdentityMap(Class theClass);
/**
* PUBLIC:
* Used to print all the Objects in every identity map in this session.
* The output of this method will be logged to this session's SessionLog at SEVERE level.
*/
public void printIdentityMaps();
}
例:
((JpaEntityManager) entityManager.getDelegate())
.getActiveSession()
.getIdentityMapAccessor()
.printIdentityMaps();
((JpaEntityManager) entityManager.getDelegate())
.getActiveSession()
.getIdentityMapAccessor()
.printIdentityMap(MyClass.class);