2016-10-27 25 views
0

我得到Entitymanager喜欢;每当我像@PersistenceContext一样返回时,EntityManager被关闭protected EntityManager entityManager;

CRUD(){ 
     @PersistenceContext 
     protected EntityManager entityManager; 

    public EntityManager getEntityManager() { 
      return entityManager; 
     } 
} 

在我的无状态EJB,我使用像

@TransactionAttribute(TransactionAttributeType.REQUIRED) 

public void update(Customer entity) { 
EntityManager em = crud().getEntityManager(); 
System.out.println("*****************"+em.isOpen()); 

Customer item = em.find(Customer.class,entity.getId()); 
if (entity.getParentId()!=null) { 
    item.setParent(em.find(CRMEntity.class , entity.getParentId())); 
item.setParentId(entity.getParentId()); 
} 

在这里,我总是得到的EntityManager是关闭。 (我的打印总是显示为false)为什么?

我使用wildfly 10,JTA和Hibernate。

回答

0

我错误地关闭了会话。这导致了这个问题。

if (session != null && session.isOpen()) { 
       session.close(); 

      } 
     }