试图找出一些可能的情况,什么时候 aEntityManagerFactory
在 EJB 中可能有用。当然,通常只需要一个事务范围EntityManager
(JTA 范围),以便所有注入的 EntityManager 共享相同的PersistenceContext
. 在以下情况下会发生什么:
何时
@PersistenceContext(type=PersistenceContextType.EXTENDED)
使用:此 JTA 是否启用?这种 EntityManager 的请求会在 JTA 的上下文中执行吗?如果不是,那在哪一个?(注意:当然它只适用于@Stateful
EJB)。当然很清楚,在这种情况下,EntityManager 将拥有自己的/特殊的 PersistenceContext。当一个人用于在 EJB
@PersistenceUnit
中获取 aEntityManagerFactory
时(我想它适用于所有类型的 EJB,对吗?),获得的Entitymanager
JTA 是否启用(当然Entitymanager.joinTransaction()
是必要的)?如何从工厂获得事务范围(启用 JTA)或扩展实体管理器?何时使用工厂而不是实体管理器有用。(当然,很明显 EntityManagerFactory 是 Java SE 应用程序到 JPA 的唯一接口,但是 EJB 呢?)。