哪个提供程序应该用于 Java Persistence API (JPA) 实现 [已关闭]

2022-09-01 10:28:44

我想在我的 Web 应用程序中使用 Java Persistence API (JPA)。

有流行的JPA实现,如HibernateToplinkEclipseLink。什么实施是一个好的选择,为什么?


答案 1

Java Persistence API(API)被开发出来时,它很快就变得流行起来。JPA 描述了使用 Java 在应用程序中管理关系数据。

JPA(Java Persistence API)是持久性提供程序实现的接口。

Hibernate就是这样一种JPA的实现。当您将Hibernate与JPA一起使用时,您实际上是在使用Hibernate JPA实现。

JPA通常通过Java类中的注释来定义元数据。或者通过 XML 或两者的组合。XML 配置将覆盖批注。

JPA 实现:

  • 休眠:最先进和广泛使用。注意类路径,因为使用了很多库,特别是在使用JBoss时。支持 JPA 2.1。
  • 顶链:仅支持基本的 JPA 规范。(这是甲骨文的JPA实现的免费版本)
  • EclipseLink:基于TopLink,是Oracle和TopLink持久化的预期路径。支持 JPA 2.1
  • Apache OpenJPA:最好的文档,但似乎很有问题。JPA 的开源实现。支持 JPA 2.0
  • DataNucleus:有据可查的开源(Apache 2许可证),也是一个JDO提供商。支持 JPA 2.1
  • ObjectDB:有据可查
  • CMobileCom JPA:轻量级的JPA 2.1实现,适用于Java和Android。

其他方法有:

  • 普通 JDBC
  • 带有Hibernate的ORM:Hibernate现在也非常支持JPA。
  • iBatis:项目移至MyBatis(链接)
  • 断续器

Hibernate的动机作为我的JPA选择:

  • 成熟项目:
    • 最先进的
    • 有据可查
  • 有用的休眠子项目
    • 休眠工具:自动生成代码和数据库生成
    • 休眠验证:Bean 规范功能。与 JPA2 集成
    • 休眠搜索:对域对象进行强大的全文搜索
  • 活跃的社区
    • 大开发社区
    • 应用广泛

Hibernate在最终规范发布后很快成为JPA的开源实现。它具有丰富的功能集并快速生成新功能,因为开源开发过程往往比Java社区过程更快。


答案 2

推荐