1

注: この質問は、以前の質問に関連してます。

私はhibernate.current_session_context_class=threadHibernate構成で使用しており、必要に応じてHibernateセッションを取得してSessionFactory.getCurrentSession()います。したがって、必要に応じて既存のセッションを作成または提供するため、私はこれを処理しません。

HibernateExceptionこれはすべて素晴らしいことですが、ConstraintViolationExceptionたとえば を取得した場合はどうすればよいでしょうか? その後、以前に取得した現在のセッションが無効になり、それ以上のデータを読み取ることさえできなくなります (私が読んだ多くのフォーラムによると)。特定のスコープ内で新しいセッションを破棄して取得するにはどうすればよいですか? SessionFactory.getCurrentSession()2回目の呼び出しでも、同じ無効なセッションが返されると思います!?

4

1 に答える 1

0

ThreadLocalSessionContext場合、トランザクションが終了するとセッションが閉じられます。したがって、この場合はtx.rollback()、を呼び出しsessionFactory.getCurrentSession()てから、最初からやり直す必要があります。

于 2012-04-26T00:48:05.593 に答える