我正在設計一個非常簡單的Web應用程序,它具有一個REST Web服務,該服務利用JPA與PostgreSQL數據庫交互並在TomEE中運行。EntityManager應該注入EJB嗎?
我不相信我有需要(或希望)手動管理EntityManager的生命週期,因此我打算用容器管理EntityManagers(可能是交易範圍的)來卸載該苦差事到TomEE。
我不相信我有需要(或期望)手動管理容器管理實體管理器需要的JTA事務。
最後,我打算使用DAO類從業務邏輯中分離任何查詢,這是我的REST Web服務。
對於每個DAO類,我最好的選擇是使用@PersistenceContext註釋來獲得對EntityManager的引用的EJB嗎?如果是這樣,DOA應該是什麼類型的EJB?我見過示例/博客暗示無狀態,有狀態,單身,甚至完全忘記了DAO,通過將EntityManager注入到Web服務本身。處理這個問題的最好方法是什麼?
EntityManager已經提供了CRUD操作;你爲什麼要把它包裝在更多(冗餘)的代碼中? –
如果你已經有了這個範圍的DAO,一次又一次注入EntityManager是什麼意思?然後通過將它注入到任何地方,您都無法知道數據更改的位置......您將不會擁有一個訪問點 –