哪个持久化上下文在休眠方面的性能方面更好?

时间:2013-01-18 14:37:20

标签: java hibernate

我们知道hibernate中有两个持久化上下文 即 org.hibernate.Session javax.persistent.EntityManager 但是EntityManager中没有Session中的一些方法 例如
会话中有 session.delete(entity); 但EntityManager中没有删除 因为我们必须使用
entityManager.remove(entity); 所以哪个Context用于数据库中的持久化实体,哪个用于两者之间更快。

据我所知,不同之处在于 传递给org.hibernate.Session删除方法的实体实例可以处于托管或分离状态,而传递给javax.persistence.EntityManager上的remove实体实例必须处于托管状态。

2 个答案:

答案 0 :(得分:2)

没有性能差异;除了原生EntityManager之外,Hibernate只通过JPA的Session公开其服务。如果您不关心JPA兼容性(我认为没有任何理由,请使用本机Session来充分利用Hibernate的完整功能集。

答案 1 :(得分:0)

非常好的问题 许多持久性API已经授权给org.hibernate API&#39 所以我认为更好的是直接使用org.hibernate API