2016-10-27 9 views
0

私はEntitymanagerを好きです。 EntityManagerは@PersistenceContextのようなEntityManager entityManagerを返すたびに閉じられます。

CRUD(){ 
     @PersistenceContext 
     protected EntityManager entityManager; 

    public EntityManager getEntityManager() { 
      return entityManager; 
     } 
} 

そして、私のステートレスEJBで

は、私がここで私はいつものEntityManagerが を閉じてもらう

@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()); 
} 

のように使用します。 (私の印刷物は常にのように偽と表示されます)なぜですか?

私はwildfly 10、JTAとHibernateを使用します。

答えて

0

私は誤ってセッションを終了しました。それが問題の原因でした。

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

      } 
     } 
関連する問題