第五节 JPA,Hibernate与Spring Data JPA
2002年,Martin Fowler在他的名著《企业应用架构模式》中首次提出“数据映射器(Data Mapper)”模式,将面向对象的领域模型映射到关系数据库中。
2003年,澳大利亚程序员Gavin King,数据系统素人,因为嫌弃EJB Entity Bean 1.1的架构复杂,自行开发了一个对象关系映射框架Hibernate。值得一提的是,此前他从未用SQL开发过任何系统。为了开发Hibernate,他临时去书店买了一个SQL基础的书。现在Hibernate已经成为最流行的对象关系影射(ORM)工具。

2006年,EJB 3.0软件专家组发布了Java Persistence API(简称JPA)规范1.0版。对对象-关系映射(ORM)进行了规范化。JPA不限于EJB 3.0,你可以在Web应用、甚至桌面应用中使用。现在是Java数据库持久化的标准。目前发布了2.2版。
Hibernate实现了JPA,是目前为止最流行的JPA规范的实现。
Spring Data JPA是对JPA的一层封装,它使得我们在定义针对JPA的查询的时候,可以只针对持久化对象的属性定义查询接口,而由Spring自动提供实现,大大简化了基于JPA的查询操作。
当前基于JPA的数据访问,一般做法是:
- 基于
JPA进行对象-关系映射。 - 基于
Spring Data JPA定义查询,进行数据存取和访问。 Hibernate作为JPA的实现,隐于幕后。任何代码都没有直接使用到Hibernate。
本书后面的叙述,都是基于这个思路铺开。