簡體   English   中英

EntityManager初始化最佳實踐

[英]EntityManager initialization best practices

使用EntityManager ,最好是使用PersistenceContext獲取一個實例並在我的程序中傳遞它,還是應該多次使用依賴注入?

在我的應用程序中,每個客戶端將與有狀態會話bean通信,並且每個bean需要在某個時刻使用EntityManager 我想同時調用bean方法(但我甚至不確定)。 我如何保證以線程安全的方式使用EntityManager 有交易嗎? 每個bean中都有一個單獨的實例?

很抱歉,如果這令人困惑,我是EJB / JPA的新手,我找不到任何解決我問題的材料。

使用@PersistenceContext將您的EntityManager注入您的DAO類。 這些是將處理數據庫操作的類。 然后在所有其他(服務)類中注入您的DAO類。 你的DAO應該是一個無狀態bean(不需要遠程接口,只需要本地)

是的,您應該將EntityManager實例(每個線程/客戶端請求將不同)注入有狀態會話bean(不會同時調用,至少不會從不同的客戶端調用)。

但是,創建DAO類沒有意義。 JPA已經是一個高級持久性API,它為您提供不同JPA實現之間的RDBMS獨立性和可移植性。 因此,DAO只會增加代碼庫的混亂。

對於交易,您實際上不需要做任何事情。 會話bean中的業務方法默認具有“必需”事務屬性,因此它們將始終在特定於客戶端的事務中運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM