У меня странная ситуация, когда внедрение некоторых EJB-компонентов без сохранения состояния в Stateful не позволяет разрешить некоторые ленивые свойства в расширенном контексте постоянства в длительном диалоге в шве 2.2.2
Из того, что я обнаружил, кажется, что любая находка, выполненная в контексте персистентности EJB без состояния, введенного в Stateful, вызывает вызов метода clear () в контексте расширенной персистентности.
Методы аннотируются с помощью @TransactionAttribute (TransactionAttributeType.SUPPORTS)
Пример:
@Stateful
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
public class BeanA {
@PersistenceContext(type = PersistenceContextType.EXTENDED) EntityManager em;
@EJB BeanB beanB;
public MyClassA find(Long id) {
return em.find(MyClassA.class, id);
}
public void method() {
MyClassA a = find(2);
em.contains(a); // true
beanB.find("myId"); // Now every object returned from A's EM are detached.
em.contains(a); // false
}
}
@Stateless
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
public class BeanB {
@PersistenceContext EntityManager em;
public MyClassB find(String id) {
return em.find(MyClassB.class, id);
}
}
Может кто-нибудь подтвердить мне это?