小编典典

Hibernate vs JPA vs JDO - 各自的优缺点?

all

我熟悉 ORM 作为一个概念,几年前我什至在 .NET 项目中使用过 nHibernate;但是,我没有跟上 Java 中的 ORM
的主题,也没有机会使用这些工具中的任何一个。

但是,现在我可能有机会开始为我们的一个应用程序使用一些 ORM 工具,试图摆脱一系列遗留的 Web 服务。

我很难说出 JPA 规范、您从 Hibernate 库本身获得的内容以及 JDO 必须提供的内容之间的区别。

所以,我知道这个问题有点开放,但我希望得到一些意见:

  • 各自的优缺点是什么?
  • 你会为一个新项目推荐哪个?
  • 是否存在某些情况下使用一个框架而不是另一个框架才有意义?

阅读 69

收藏
2022-08-16

共1个答案

小编典典

一些注意事项:

  • JDO 和 JPA 都是规范,而不是实现。
  • 这个想法是,如果您将代码限制为仅使用标准 JPA,您可以交换 JPA 实现。(同样适用于 JDO。)
  • Hibernate 可以用作 JPA 的一种此类实现。
  • 然而,Hibernate 提供了一个原生 API,其特性超越了 JPA。

IMO,我会推荐 Hibernate。


如果您需要 使用特定于 Hibernate 的功能,有一些关于您应该做什么的评论/问题。有很多方法可以解决这个问题,但我的建议是:

  • 如果您不担心与供应商合作的前景,那么请在 Hibernate 和其他 JPA 和 JDO 实现( 包括 您决策中的各种供应商特定扩展)之间做出选择。

  • 如果您担心与供应商合作的前景,并且如果不求助于供应商特定的扩展就无法使用 JPA,那么请不要使用 JPA。(JDO 同上)。

实际上,您可能需要权衡 对供应商绑定的担忧程度与 需要这些供应商特定扩展的程度。

还有其他因素,例如您/您的员工对各自技术的了解程度、产品的许可成本以及您认为 JDO 和 JPA 未来会发生什么的故事。

2022-08-16