我想为我的 Web 应用程序使用 Java Persistence API (JPA)。
有流行的 JPA 实现,例如休眠, Toplink and EclipseLink。
什么样的实施是一个好的选择,为什么?
当。。。的时候Java 持久性 API (API)被开发出来后,很快就流行起来了。 JPA 描述了使用 Java 的应用程序中关系数据的管理。
JPA(Java Persistence API)是持久性提供者实现的接口。
Hibernate 就是这样一种 JPA 实现。当您将 Hibernate 与 JPA 结合使用时,您实际上正在使用 Hibernate JPA 实现。
JPA 通常通过 Java 类中的注释来定义元数据。或者通过 XML 或两者的组合。 XML 配置会覆盖注释。
JPA 实现:
-
休眠:最先进、应用最广泛。请注意
classpath,因为使用了很多库,尤其是使用时
杰老板。支持 JPA 2.1。
-
Toplink:仅支持基本的 JPA 规范。 (这是oracle的免费
JPA 实现的版本)
-
EclipseLink:基于 TopLink,是预期的前进方向
用于 Oracle 和 TopLink 的持久性。支持JPA 2.1
-
Apache OpenJPA:最好的文档,但似乎有很多错误。开源
JPA 的实施。支持JPA 2.0
-
数据核心:文档齐全,开源(Apache 2 许可证),也是一个 JDO 提供者。支持JPA 2.1
-
ObjectDB: 有据可查
-
中国移动通信JPA:适用于 Java 和 Android 的轻量级 JPA 2.1 实现。
其他方法有:
- 普通 JDBC
- ORM with Hibernate:Hibernate 现在也非常支持 JPA
- iBatis:项目迁移到MyBatis(link http://mybatis.org)
- JDO
选择 Hibernate 作为我的 JPA 的动机:
- Mature project:
- Useful Hibernate sub projects
- Hibernate工具:自动生成代码和数据库生成
- Hibernate 验证:bean 规范功能。与 JPA2 集成
- Hibernate 搜索:对域对象进行强大的全文搜索
- Active community
在最终规范发布后,Hibernate 很快成为 JPA 的开源实现。它具有丰富的功能集,并且可以快速生成新功能,因为开源开发过程往往比 Java 社区过程更快。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)