【问题标题】:Most popular JPA implementation [closed]最受欢迎的 JPA 实现 [关闭]
【发布时间】:2012-06-06 13:11:25
【问题描述】:

我是一名初级程序员,被要求开发一个应利用 Java Persistence API (JPA) 的应用程序。

哪个是最流行的 JPA 实现(Hibernate、Toplink、EclipseLink)

我可以在 Apache Tomcat 中使用上述任何一个吗?或者每个实现都与特定的服务器应用程序相关联?

有没有关于这个主题的好的入门书籍或教程?

【问题讨论】:

  • 显然还有其他各种 JPA 实现,各有优缺点。阅读 stackoverflow 的 FAQ 意味着像这样的主观问题不适合这个网站。建议您自己做一些研究,因为所有实现都有非常好的文档恕我直言。 TopLink Essentials 是 JPA1 的 RI,EclipseLink 是 JPA2 的 RI。但 RI 的意思只是“概念证明”,证明规范是可实施的

标签: hibernate jpa persistence eclipselink toplink


【解决方案1】:

这是一个非常主观的问题。
我认为 Hibernate 仍然更受欢迎,但最受欢迎的东西不一定总是最适合特定任务。

就个人而言,我会在大多数项目中使用 EclipseLink(它是 TopLink 的继任者)——它不是没有任何 JPA 的参考实现,它具有良好的支持和定期发布,由 Eclipse 基金会驱动,并带有良好的文档.

您可以将 EclipseLink 和 hibernate 与每个应用程序服务器一起使用(tomcat 非常好),甚至可以独立使用(完全没有应用程序服务器)——JPA 标准保证了这一点。

如果您不使用特定于实现的东西(并坚持使用 JPA),您甚至可以将 EclipseLink 与 Hibernate 交换(反之亦然)——尽管我这样做是有充分理由的。

【讨论】:

  • Eclipse Link 是否绑定到特定服务器?
  • Hibernate 似乎是我提到的三个实现中最受欢迎的... 为什么 Toplink 和 EclipseLink 不那么受欢迎,因为它们是参考实现?
  • 看看我编辑的答案。恕我直言,Toplink 从来都不是参考实现。 EL 不太受欢迎,因为 hibernate 是第一个 - 甚至在指定 JPA 标准之前。但在查看趋势时,我粗略猜测 EclipseLink 可能会在几年内超过 Hibernate。
  • “您可以在每个应用服务器上同时使用 EclipseLink 和休眠” - 直到您尝试在 WebLogic 中运行休眠(eclipseLink 附带)。
【解决方案2】:

如果您选择 Toplink,您将被解雇并在桥下度过一天,喝着便宜的伏特加,想知道您的职业生涯会是什么样子。

我只听说 EclipseLink 不错,但我认为 Hibernate 具有更多的行业用途,并且具有一些非 JPA 功能。

您应该能够将它们全部与 Tomcat 一起使用,因为它们是 Java API 的实现,而不是特别依赖于任何容器。

【讨论】:

    【解决方案3】:

    这取决于。两种解决方案都有效,但每个解决方案都做出了自己的设计决定,取决于您,这些决定可能对您有利或不利。

    所以我建议使用这两种技术实现一个简单但完整的原型(每种技术都花一周时间),以了解哪一种更适合您。完整意味着:实施您知道自己需要的每个用例,尤其是复杂的用例。

    作为指导,我发现 Hibernate 具有更多功能,但 Eclipse Link 会为您提供更好的错误消息 -> 我在解决 Link 问题上花费的时间更少。

    另一方面,Hibernate 内置了更多功能,因此我将更少的时间用于将需求转化为代码 - 当我可以找到该功能,了解它的工作原理并且我没有遇到一些奇怪的错误消息时只是让我难过并在圈子里跑了几天。

    Eclipse Link 曾经是商业产品,所以文档更好。

    【讨论】:

    • 对于轻量级 JPA 提供程序,我建议 Java 和 Android 都使用 CMobileCom JPA
    猜你喜欢
    • 1970-01-01
    • 2021-02-20
    • 2011-03-08
    • 2010-09-06
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多