一尘不染

Java Persistence API(JPA)实现应使用哪个提供程序。

java

我想将Java Persistence API(JPA)用于我的Web应用程序。

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


阅读 145

收藏
2020-12-03

共1个答案

一尘不染

Java持久性API(API) 的开发,它成为流行的速度非常快。JPA描述了使用Java在应用程序中关系数据的管理。

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

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

JPA通常通过Java类中的注释定义元数据。也可以通过XML或两者结合使用。XML配置将覆盖注释。

JPA实现:

  • 休眠 :最先进且使用最广泛的。注意类路径,因为使用了很多库,尤其是在使用JBoss时。支持JPA 2.1。
  • Toplink :仅支持基本的JPA规范。(这是Oracle的JPA实现的免费版本)
  • EclipseLink :基于TopLink,是Oracle和TopLink持久化的预期路径。支持JPA 2.1
  • Apache OpenJPA :最佳文档,但似乎有很多错误。JPA的开源实现。支持JPA 2.0
  • DataNucleus :有据可查的开放源代码(Apache 2许可),也是JDO提供者。支持JPA 2.1
  • ObjectDB :有据可查
  • CMobileCom JPA :适用于Java和Android的轻量级JPA 2.1实现。

其他方法是:

  • 纯JDBC
  • Hibernate的ORM:Hibernate现在也非常支持JPA
  • iBatis:项目移至MyBatis(链接
  • JDO

Hibernate的动机是我的JPA选择:

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

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

2020-12-03