0
votes

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
What is the point of having the same instance of the factory? Maybe you want to know if your methods share the same persistence context? - Matt Handy

1 Answers

2
votes

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