【问题标题】:What could I miss from Hibernate Session when working with JPA Entity Manager and vice versa?在使用 JPA Entity Manager 时,我会从 Hibernate Session 中错过什么,反之亦然?
【发布时间】: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


【解决方案1】:

使用 JPA 的全部目的是您使用的标准可以由不同的供应商实施。因此,您可以选择在不(或很少)更改您自己的应用程序代码的情况下交换各种实现。

如果您不关心更换供应商,那么您使用 Hibernate 特定 API 还是 JPA API 都没有关系。但是,对于日常使用而言,API 具有可比性,那么为什么不采用标准呢?

【讨论】:

  • 因为我想了解 hibernate 可以从任何提供商那里为我提供什么。我想他们想让我看到的是,有一堆与会话/实体管理器管理没有直接关系的额外内容仍然不在标准的范围内,或者这就是我所理解的
  • 问题仍然存在:(1) 您是否认为需要这些功能;(2) 您是否认为可能需要更改持久性提供程序。我们无法为您解答的那些问题(以及答案的重要性)。
  • 我明白,但我仍然不知道这些附加功能是什么:p
  • 我在正常的日常应用程序中都使用了这两种方法,我看不出有太大的不同。也许 hibernate API 有时更容易在复杂的查询中使用,但实际上这些几乎不需要。我个人会选择标准,如果您似乎需要特殊功能,请在这种情况下使用特殊功能。恕我直言,有时使用组合解决方案并没有错。
猜你喜欢
  • 2015-06-27
  • 2020-08-19
  • 2011-04-01
  • 1970-01-01
  • 2012-03-25
  • 2012-09-29
  • 2010-11-14
  • 2011-12-07
  • 1970-01-01
相关资源
最近更新 更多