次の 2 行のコードが与えられます。
entityManager.find(MyEntity.class, myId);
((Session) getEntityManager().getDelegate()).load(MyEntity.class, myId);
最初の命令は正常に機能しますが、2 番目の命令は org.hibernate.SessionException: Session is closed! をスローします。何か案が ?
コンテキスト:春のバッチ3.0.6 /休止状態3.5.0
情報: EntityManager が注入されました:
@PersistenceContext
protected EntityManager entityManager;
更新 1
セッションがnullの場合(EntityManagerImpl.getRawSession内)、新しいセッションを開くthis.getSession()への呼び出しがfindメソッドで確認できます
更新 2
2 番目の状況では、getSession メソッドは呼び出されませんが、セッションを閉じる SharedEntityManagerCreator と呼ばれるクラスです。
if(isNewEm) {
EntityManagerFactoryUtils.closeEntityManager(target1);
}