1

Session.disconnectHibernateは、とを使用して、基になるJDBC接続からセッションを切断して再接続できますSession.reconnect(Connection)

JPAだけを使用して同じことを達成する方法はありますか?そうでない場合は、基盤となるJDBC接続を一時的に解放しながら、長時間実行されているJPAセッションを開いたままにしておくことができる代替パターンがJPAにありますか。

よろしく、ヨッヘン

4

1 に答える 1

1

EntityManagerFactoryにもEntityManagerにもそのようなメソッドはありません。

@PersistenceContext(type = PersistenceContextType.EXTENDED)またはEntityManagerFactory.createEntityManager()を使用して、長時間実行されるEntityManagerを作成できますが、接続を切断して再接続するためのメソッドはありません。

ただし、EntityMangerを閉じた後、新しいEntityMangerを作成し、切り離されたエンティティをEntityManger.merge()(および必要に応じてEntityManger.refresh())で再接続できます。

于 2012-12-07T15:34:08.683 に答える