应该将哪个提供程序用于Java Persistence API(JPA)实现

时间:2013-07-26 14:24:57

标签: java jpa persistence implementation provider

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

有一些流行的JPA实现,如 Hibernate Toplink EclipseLink 。 什么实施是一个很好的选择,为什么?

1 个答案:

答案 0 :(得分:46)

开发 Java Persistence API(API)后,它变得非常流行。 JPA描述了使用Java的应用程序中关系数据的管理。

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

Hibernate是JPA的一个这样的实现。当您使用Hibernate和JPA时,您实际上正在使用Hibernate JPA实现。

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

JPA实施:

  • Hibernate :最先进,使用最广泛。注意 classpath因为使用了很多库,特别是在使用时 JBoss的。支持JPA 2.1。
  • Toplink :仅支持基本的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 :适用于Java和Android的轻量级JPA 2.1实现。

其他方法是:

  • 普通JDBC
  • ORM与Hibernate:Hibernate现在也非常支持JPA
  • iBatis:项目移至MyBatis(link
  • JDO

Hibernate的动机是我的JPA选择:

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

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