If:

   - I have one stateless session bean--S1--that calls another--S2--through
   S2's *local *business interface...
   - ...and if both S1 and S2 have EntityManagers injected into them (EM1
   and EM2) with the same @PersistenceContext annotation (thus referring to the
   same persistence unit)...
   - ...and if S2 does something that results in an entity becoming managed
   under EM2...
   - ...and if S2 is marked as
   @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) (and if S1 is
   marked as REQUIRED, though I suspect it doesn't matter)...
   - ...and if S2 returns that managed object to S1 (by reference, as
   guaranteed by the EJB specification)...

...is that EM2-managed object then guaranteed to be managed in EM1's
persistence context?  May I call EM1.refresh() on it without getting an
exception?

Another way to ask this is: are EM1 and EM2 guaranteed to share a common
persistence context *by reference* in this case?

Thanks,
Laird

Reply via email to