Hibernate セッション管理: openSession() と getCurrentSession()
JSP Web アプリケーションで Hibernate を使用する場合、セッションの管理は非常に重要です。効率的なデータアクセス。この記事では、openSession() メソッドと getCurrentSession() メソッドの使用法に関する一般的な質問について説明します。
1. Hibernate.current_session_context_class
hibernate.current_session_context_class の値は、Hibernate がセッションのライフサイクルを管理する方法を決定します。可能なオプションは 2 つあります:
2.メソッドの選択
openSession() と getCurrentSession() のどちらを使用するかは、採用されているセッション管理戦略によって異なります。
3. Web アプリごとのセッションとリクエストごとのセッション
セッションはスレッドセーフではなく、複数のスレッド間で共有できないため、「Web アプリごとに 1 つのセッション」アプローチは推奨されません。代わりに、推奨されるアプローチは次のとおりです。
したがって、スレッドバインドされたセッションを使用する場合は、hibernate.current_session_context_class を「thread」に設定し、getCurrentSession() を使用することをお勧めします。 openSession() を実行し、非スレッド バインド セッションを使用する場合はセッションを明示的に閉じます。さらに、データの整合性とスレッドの安全性を確保するために、「リクエストごとに 1 つのセッション」アプローチを採用することをお勧めします。
以上がHibernate セッション管理: openSession() と getCurrentSession() をいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。