【发布时间】:2013-12-17 04:50:27
【问题描述】:
我假设你们中的一些人会立即检查这个问题是否重复,但实际上,我正在尝试找到有意义的见解但我没有找到它(即使在谷歌中,也找不到明确的答案)
问题是,我知道我可以从实体管理器获取底层 Hibernate 会话,但我只是想要一些好的链接、来自经验的声音或以清晰和集中的方式解决这个特定疑问的任何东西:
- 什么可以为 EntityManager 提供 Hibernate Session 不能提供的东西? (从逻辑和 API 的角度)
到目前为止,如果我没记错的话,我从其他问题推断出 Hibernate Session 有一些独特的 @filter 注释,而 EntityManager 可能有一个独特的 @Pre/PostPersist/Update。另一个问题是这篇文章有时很旧,你永远不会知道他们比较的是什么 Hibernate 版本或 JPA 标准。
我只是想了解在开始实际编码之前阅读适用的相关 api 和所有内容,而且我是 Hibernate/JPA 的新手。
我将通过 HibernateTools 使用 Hibernate 4.0 和 JPA 2.0,以防在比较功能或优势时很重要。
来自有经验的用户的一个很好的资源,以一种对那些可以根据经验判断的人来说很好的方式来解决这个话题,足以让我开心
【问题讨论】:
-
使用标准的 JPA API。甚至 Hibernate 开发人员也推荐它。
-
那么我推断如果 hibernate 仅作为 JPA 标准提供者有用的话,它就死了?
-
为什么它比任何其他 JPA 提供者都死气沉沉?他们都有自己的长处和短处。它们都对规范提供的内容进行了扩展。默认情况下,它们都捆绑在一个容器或另一个容器中。通用汽车是否像所有其他制造商的所有其他汽车一样都有 4 个轮子、一个方向盘和踏板?
-
嗯,General Motors 正试图为其他品牌提供附加值,而这里有人断言没有人应该关心可以添加 Hibernate 的内容。此外,它的性能不是特别好,这可能是我唯一能想到的标准实现之间的区别。通用汽车可能会在很长一段时间内死去,以防规格说他们的汽车必须与其他任何汽车完全一样。我猜每个 IDE 的默认提供程序最终会吃掉任何替代方案。只是我的拙见
-
在标准 JPA API 之上,Hibernate 添加了特定注释(查看他们的 javadoc)、附加映射功能、Envers、Hibernate Search 等。重新阅读您自己的问题。您没有询问 Hibernate 提供了其他 JPA 提供程序没有提供的内容。您问过使用标准 JPA API 与使用原生 Hibernate Session API 相比获得了什么或失去了什么。
标签: java spring hibernate session jpa