很明显,EntityManager正在举行当前会话,我们可以使用以下方法获取它:
Session session = entityManager.unwrap(Session.class);
但是我很好奇EntityManager何时获得新的。
@edit
@PersistenceContext(type = PersistenceContextType.TRANSACTION, unitName = "context")
private EntityManager em;
答案 0 :(得分:0)
根据您的代码,我假设您正在使用Java EE或Spring。
@PersistenceContext(type = PersistenceContextType.TRANSACTION, unitName = "context")
private EntityManager em;
在这种情况下,EntityManager绑定到事务。这意味着您每进行一次新事务都会获得一个新的EntityManager。
Session和EntityManager相同,并且具有相同的生命周期。这只是相同的别称。会话是Hibernate lang语和EntityManager JPA。