【发布时间】:2013-08-05 18:55:48
【问题描述】:
我有这个 Resources 类,它产生了我的 entityManager 以及一个休眠会话:
public class Resources {
@Produces
@PersistenceContext
private EntityManager em;
@Produces
public Session produceSession() {
return em.unwrap(Session.class);
}
}
当我在我的 EJB 类中注入 EntityManager 时,它工作正常,但使用注入的休眠会话只能在第一次工作。在此之后,它总是关闭。我认为 CDI 有效,但它只注入我的依赖项一次,所以我不能使用它。
所以,我决定使用这个:
entityManager.unwrap(Session.class)
每次我需要一个休眠会话。例如:
return criteria.getExecutableCriteria(entityManager.unwrap(Session.class)).list();
我的两个问题是:还有其他方法吗?这是一个正确的方法吗?
希望有人在这里帮助我! 谢谢!
【问题讨论】:
标签: hibernate session cdi entitymanager