2012-04-11 15 views

回答

5

聽起來對我很好。

過濾器和servlet一次會被多個線程使用(與無狀態或有狀態的EJB不同)。因此應該根據請求查找EntityManager

或者,您也可以通過指定SingleThreadModel需要,在這種情況下,你可以對所有在您的過濾器或servlet注入EntityManager一次迫使Web容器來同步訪問的servlet(不知道的過濾器)。

上面的信息來自這個職位約PersistenceContext in a web app

獲得EntityManager是我相信一個便宜的操作(不像獲得工廠本身)。至少,Hibernate的Session和SessionFactory就是這種情況。所以我會去你的原創設計。

+0

感謝您的確認和參考:) – necromancer 2012-04-11 19:04:01

+1

你鏈接的文章很好,但有一個可怕的誤導性標題。它應該是「不要在Servlet中使用@PersistenceContext」。 – BalusC 2012-04-12 03:56:41

相關問題