有状态bean注入无状态bean,它们是否都使用相同的EntityManagerFactory实例?

时间:2012-02-02 14:34:54

标签: jpa ejb-3.0 java-ee-5

我有一个Stateful Bean注入一个JPA PersistenceUnit和另一个无状态bean。无状态bean也注入了相同的PersistenceUnit。我的问题是,EJB容器是否会在两个bean中注入相同的PersistenceUnit实例。我必须非常肯定这里的行为。

@Stateful
public class MyStatefulBean {

   @PersistenceUnit(unitName = "MY_PU")
   private EntityManagerFactory emf;

   @EJB
   MyStatelessLocal statelessEJB;

   public void doSomething() {
     // Question will statelessEJB use the same instance of EntityManagerFactory? 
     statelessEJB.doSomthingWithEntityManager();
   }
}


@Stateless
public class MyStatelessBean {

   @PersistenceUnit(unitName = "MY_PU")
   private EntityManagerFactory emf;

   public void doSomthingWithEntityManager() {      
   }
}

欢迎任何答案。

此致

1 个答案:

答案 0 :(得分:2)

是的,他们会得到同一个:在“MY_PU”名称下定义的那个。他们可以找到哪家工厂?