【问题标题】:difference between Hibernate Session and EntityManager [duplicate]Hibernate Session和EntityManager之间的区别[重复]
【发布时间】:2013-05-16 05:54:48
【问题描述】:

Hibernate Session 类和EntityManager 类有什么区别?我知道EntityManager 实现了Java Persistence API,但我不确定它与Session 有什么关系。它们有关系吗?

【问题讨论】:

    标签: java hibernate jpa


    【解决方案1】:

    Session 是特定于休眠的 API,EntityManager 是 JPA 的标准化 API。您可以将EntityManager 视为包装Session 的适配器类(您甚至可以通过getDelegate() 函数从EntityManager 对象中获取Session 对象)。

    这与周围的其他 Java API 没有什么不同(例如,JDBC 是一个标准 API,每个供应商通过实现标准功能的驱动程序将其产品适配到 API)。

    【讨论】:

    • 它们在功能上是否有区别,或者它们或多或少相同?
    • 它们并不完全相同(函数名称不同甚至用途不同,注解不同等)。 hibernate(以及周围的所有其他 JPA 供应商)所做的是提供一个适配器对象,该对象通过调用本机 hibernate API 创建 EntityManager 功能。
    • 实体管理器是否在每次请求时都创建一个新会话?只是好奇
    猜你喜欢
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 2015-04-01
    • 2012-11-09
    • 1970-01-01
    • 2023-02-13
    • 2014-08-16
    • 2011-04-08
    相关资源
    最近更新 更多