現在、サーブレットのメソッド内EntityManagerからを取得し、それをサーブレットに渡し、途中で閉じています。EntityManagerFactorydoFilterFilter
の寿命に関する限り、これは良い習慣EntityManagerですか? または、別の寿命を持つ必要がありEntityManagerますか?
現在、サーブレットのメソッド内EntityManagerからを取得し、それをサーブレットに渡し、途中で閉じています。EntityManagerFactorydoFilterFilter
の寿命に関する限り、これは良い習慣EntityManagerですか? または、別の寿命を持つ必要がありEntityManagerますか?
私にはいいですね。
フィルターとサーブレットは、複数のスレッドで同時に使用されます (ステートレスまたはステートフル EJB とは異なります)。そのため、EntityManagerリクエストごとに検索する必要があります。
または、 が必要であることを指定して、Web コンテナーにサーブレットへのアクセスを強制的に同期させることもできます (フィルターについては不明) 。その場合、フィルターまたはサーブレットに一度限りをSingleThreadModel挿入できます。EntityManager
上記の情報は、Web アプリの PersistenceContextに関するこの投稿からのものです。
を取得するEntityManagerことは、安価な操作だと思います (工場自体を取得するのとは異なります)。少なくとも、Hibernate の Session と SessionFactory はそうでした。だから私はあなたのオリジナルのデザインに行きます。