クライアント側からの各リクエストがサーバー側で複数のスレッドを生成するシステムを構築しています。各スレッドは、1 つ以上の DAO を使用します (一部の DAO は、同時に複数のスレッドで使用できます)。すべての DAO は@Autowired
、Spring によってスレッド クラスに注入 () されます。各 DAOSessionFactory
も注入されます。
これらの複数の DAO 間で Hibernate セッションを管理する適切な方法は何でしょうか。マルチスレッド環境のために問題が発生しないようにするためです (たとえば、異なるスレッドのいくつかの DAO が同時に同じセッションを使用しようとしているなど)。
Hibernate構成で指定hibernate.current_session_context_class=thread
し、DAOで毎回単純SessionFactory.getCurrentSession()
に作業を行うだけで十分でしょうか? 必要に応じて、スレッドごとにセッションを適切に検出して作成しますか?