2015-05-23 94 views
5

我想在Java EE中創建一個登錄應用程序。我想過爲用戶使用html頁面,servlet和實體類來實現它,但似乎EntityManager不是線程安全的(無法注入到servlet中,我需要它來檢查數據庫)。在servlet中注入EntityManager,它似乎不是線程安全的

我讀了約EntityManagerFactory但我不想管理生產的EntityManager當我可以讓容器做的時候。我認爲可以實現一些使用DAO模式的實現,以便我可以在servlet中擁有一個實體管理器,例如包含管理器的DAOImpl,並將該類作爲servlet中的私有變量。但我在網上找不到任何有用的教程。

有人可以提供這個實現嗎?

+0

如果一個對象具有可變狀態,它只能是線程安全的。那麼爲什麼不用無狀態對象來執行你的認證。這不就是@Stateless會話Bean(EJB 3.0的一部分)嗎? – scottb

+0

你究竟注入了什麼,這讓你覺得它不是線程安全的? – BalusC

回答

1

關注甲骨文建議文檔here,任何方法應該做到: 或者:

與注射的EntityManagerFactory在通過SerlvetContextListener你的DAO實現了一套。

@PersistenceUnit   
private EntityManagerFactory emf; 

或在您的DaoImpl中注入EntityManager。

@PersistenceContext 
    private EntityManager em; 
相關問題