我有这个Resources类,它生成我的entityManager以及一个hibernate Session:
public class Resources {
@Produces
@PersistenceContext
private EntityManager em;
@Produces
public Session produceSession() {
return em.unwrap(Session.class);
}
}
当我在我的EJB类中注入EntityManager时,它工作正常,但是使用注入的hibernate Session只是第一次工作。在此之后,它总是关闭。我认为CDI有效,但它只是注入我的依赖,所以我不能使用它。
所以,我决定使用它:
entityManager.unwrap(Session.class)
每次我需要一个Hibernate Session。例如:
return criteria.getExecutableCriteria(entityManager.unwrap(Session.class)).list();
我的两个问题是:还有其他办法吗?这是一种正确的方法吗?
希望有人在这帮助我! 谢谢!
答案 0 :(得分:0)
有一些CDI扩展,其中一些提供了hibernate集成。但实际上,这应该适合你。
但是,JPA 2有一个您可能感兴趣的标准API。