Stateful bean injecting stateless bean, will they

2019-08-26 11:10发布

问题:

I have a Stateful Bean injecting a JPA PersistenceUnit and another stateless bean. The stateless bean is injecting the same PersistenceUnit as well. My question is, will the EJB container inject the same instance of PersistenceUnit in both beans. I have to be very sure about the behaviour here.

@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() {      
   }
}

Any answers are welcome.

Regards

回答1:

Yes, they will get the same one: the one defined under the "MY_PU" name. Which other factory could they get?