第五节 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
。
本书后面的叙述,都是基于这个思路铺开。