簡體   English   中英

EntityManager和兩個具有PersistenceContextType.EXTENDED的DAO

[英]EntityManager and two DAO with PersistenceContextType.EXTENDED

我的應用程式中的實體管理員遇到問題。 我有兩個這樣的DAO案例:

@Repository
public abstract class DaoA 
{
    protected ClassA persistentClass;

    @PersistenceContext(name="my.persistence", type=PersistenceContextType.EXTENDED)
    protected EntityManager entityManager;
    -------------- some typical action for DAO --------------
}

第二個DAO用於ClassB,看起來類似於DaoA。 其余的事情由Spring框架為我完成。

在調試應用程序時,我認識到兩個DAO對象都有不同的EntityManager實例。 結果,我的兩個不同的DAO與不同的PersistenceContext連接。

問題是這是否是正確的行為? 我希望所有DAO類都具有相同的PersistenceContext。 請給我一個提示,如果可能的話,以及我是否正確理解了JPA?

問候高清

這是EXTENDED持久性上下文的正確行為,因此在這種情況下您不需要將其EXTENDED

在大多數情況下,您需要一個TRANSACTIONAL持久性上下文,這是省略type時的默認模式:

@PersistenceContext(name="my.persistence")
protected EntityManager entityManager;

在這種模式下,持久性上下文與事務相關聯,因此在同一事務中工作時,所有DAO都將共享相同的持久性上下文。 我想這就是您所需要的。

暫無
暫無

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

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