我有这个 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();
我的两个问题是:还有其他方法吗?这是一个正确的方法吗?
希望有人在这里帮助我!谢谢!