Hibernate vs JPA vs JDO - 各自的优缺点? [关闭]

2024-05-06

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

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

我很难区分 JPA 规范、Hibernate 库本身提供的功能以及 JDO 提供的功能之间的区别。

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

  • 各自的优点和缺点是什么?
  • 您对新项目有何建议?
  • 是否存在某些条件才可以使用一种框架而不是另一种框架?

一些注意事项:

  • JDO和JPA都是规范,而不是实现。
  • 这个想法是,如果您将代码限制为仅使用标准 JPA,则可以交换 JPA 实现。 (JDO 也是如此。)
  • Hibernate 可以用作 JPA 的此类实现之一。
  • 然而,Hibernate 提供了一个本机 API,其功能超越了 JPA。

IMO,我会推荐 Hibernate。


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

  • 如果您不担心供应商捆绑的前景,那么可以在 Hibernate 以及其他 JPA 和 JDO 实现之间做出选择包括您的决策中各种供应商特定的扩展。

  • 如果您担心供应商捆绑的前景,并且如果不求助于供应商特定的扩展就无法使用 JPA,那么就不要使用 JPA。 (JDO 也是如此)。

实际上,您可能需要权衡how much您担心供应商捆绑与how much您需要那些供应商特定的扩展。

还有其他因素,例如您/您的员工对各自技术的了解程度、产品的许可成本是多少,以及您相信谁的关于 JDO 和 JPA 未来将会发生的故事。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate vs JPA vs JDO - 各自的优缺点? [关闭] 的相关文章

随机推荐