Hibernate Session和EntityManager之间的区别[重复]
Posted
技术标签:
【中文标题】Hibernate Session和EntityManager之间的区别[重复]【英文标题】:difference between Hibernate Session and EntityManager [duplicate] 【发布时间】:2013-05-16 05:54:48 【问题描述】:Hibernate Session
类和EntityManager
类有什么区别?我知道EntityManager
实现了Java Persistence API,但我不确定它与Session
有什么关系。它们有关系吗?
【问题讨论】:
【参考方案1】:Session
是特定于休眠的 API,EntityManager
是 JPA 的标准化 API。您可以将EntityManager
视为包装Session
的适配器类(您甚至可以通过getDelegate()
函数从EntityManager
对象中获取Session
对象)。
这与周围的其他 Java API 没有什么不同(例如,JDBC 是一个标准 API,每个供应商通过实现标准功能的驱动程序将其产品适配到 API)。
【讨论】:
它们在功能上是否有区别,或者它们或多或少相同? 它们并不完全相同(函数名称不同甚至用途不同,注解不同等)。 hibernate(以及周围的所有其他 JPA 供应商)所做的是提供一个适配器对象,该对象通过调用本机 hibernate API 创建 EntityManager 功能。 实体管理器是否在每次请求时都创建一个新会话?只是好奇以上是关于Hibernate Session和EntityManager之间的区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate 中的 session.persist() 和 session.save() 有啥区别?
EntityManagerFactory 和 SessionFactory 的区别? [复制]
Hibernate——实例总结Hibernate对象的状态和ThreadLoacl封闭的session
Hibernate常用的接口和类---Session接口☆☆☆☆☆