persistenceContext如何与多个EntityManager链接

时间:2015-08-07 07:20:31

标签: entity persistence jpa-2.0 ejb-3.0 entitymanager

最近我浏览了PRO JPA2书,发现"单个persistence context可以与多个EntityManager实例链接。"

我搜索过相同但未找到满意的答案。任何人都可以用例子来详细解释这个吗?

1 个答案:

答案 0 :(得分:1)

如果没有书中的更多背景,很难确切地知道其含义。也就是说,如果您在全局事务中使用容器管理的JPA,那么引用相同持久性单元的每个注入的EntityManager将由相同的持久性上下文支持。例如:

@Stateless
public class Bean {
    @PersistenceContext
    EntityManager em1;

    @EJB
    OtherBean otherBean;

    @TransactionAttribute(REQUIRED) // The type, but for illustration
    public void doWork() {
        // ... use em1
        otherBean.doMoreWork();
    }
}

@Stateless
public class OtherBean {
    @PersistenceContext
    EntityManager em2;

    public void doMoreWork() {
        // ... use em2, it shares a persistence context with em1
    }
}