JAVA持久化框架选择:EJB?JPA?Hibernate?TopLink?
采用 Java 持久化框架:选择、时机和优缺点?这篇文章比较了Entity Enterprise Java Bean 、Java Persistence API 、Hibernate和TopLink,非常的详细和清楚。英文版在这。
文中提到了JDO,但并没有展开说。
Java Data Objects(JDO) is a standard way to access persistent data in databases, using plain oldJava objects (POJO) to represent persistent data.
JDO官方文档在这里。
严格的说,JDO 并不是对象-关系映射接口,因为它支持把对象持久化到任意一种存储系统中,包括关系数据库、面向对象的数据库、基于XML的数据库,以及其他专有存储系统。由于关系数据库是目前最流行的存储系统,许多JDO的实现都包含了对象-关系映射服务。
维基百科上JDO与JPA的对比:
JDO, from an APIpoint of view, is agnostic to the technology of the underlying datastore,whereas JPA is targeted to RDBMS datastores (although there are several JPAproviders that support access to non-relational datastores through the JPA API,such as DataNucleus and ObjectDB).
Leading JDO commercialimplementations and open source projects also offer a JPA API implementation asan alternative access to their underlying persistence engines, formerly exposedsolely via JDO in the original products。
关于java持久化技术的发展可以看看这本书
《IBM最佳实践:Java企业级持久化技术指南》。由IBM五位经验丰富的架构师共同撰写,总结他们多年来在工作中的心得体会,整理了JDBC、iBATIS、Hibernate、Java Persistence API和pure Ouery等持久层技术的典型应用案例,让开发者在分析、设计、构建、测试、部署、运营和维护阶段都可以进行参考。