2015-08-07 2 views
0

Недавно я прочитал книгу PRO JPA2 и обнаружил, что «Один persistence context может быть связан с несколькими экземплярами EntityManager».Как может persistenceContext ссылка с несколькими EntityManager

Я искал то же самое, но не смог найти удовлетворительного ответа. Может ли кто-нибудь объяснить это на примере?

ответ

1

Трудно точно узнать, что означало без контекста из книги. Тем не менее, если вы используете управляемую контейнером JPA в рамках глобальной транзакции, каждый внедренный EntityManager, ссылающийся на тот же блок персистентности, будет поддерживаться одним и тем же контекстом персистентности. Например:

@Stateless 
public class Bean { 
    @PersistenceContext 
    EntityManager em1; 

    @EJB 
    OtherBean otherBean; 

    @TransactionAttribute(REQUIRED) // The type, but for illustration 
    public void doWork() { 
     // ... use em1 
     otherBean.doMoreWork(); 
    } 
} 

@Stateless 
public class OtherBean { 
    @PersistenceContext 
    EntityManager em2; 

    public void doMoreWork() { 
     // ... use em2, it shares a persistence context with em1 
    } 
} 
Смежные вопросы