我们知道hibernate中有两个持久化上下文
即 org.hibernate.Session 和 javax.persistent.EntityManager
但是EntityManager中没有Session中的一些方法
例如
会话中有 session.delete(entity);
但EntityManager中没有删除
因为我们必须使用
entityManager.remove(entity); 所以哪个Context用于数据库中的持久化实体,哪个用于两者之间更快。
据我所知,不同之处在于 传递给org.hibernate.Session删除方法的实体实例可以处于托管或分离状态,而传递给javax.persistence.EntityManager上的remove实体实例必须处于托管状态。
答案 0 :(得分:2)
没有性能差异;除了原生EntityManager
之外,Hibernate只通过JPA的Session
公开其服务。如果您不关心JPA兼容性(我认为没有任何理由,请使用本机Session
来充分利用Hibernate的完整功能集。
答案 1 :(得分:0)
非常好的问题 许多持久性API已经授权给org.hibernate API&#39 所以我认为更好的是直接使用org.hibernate API