本节主要介绍Spring Data JPA是什么、Spring Data JPA核心接口Repository、核心接口间的继承关系图等内容。
JPA(Java Persistence API)是Sun公司官方提出的Java持久化规范。所谓规范是指只定义标准规则,不提供实现,而JPA的主要实现有Hibernate、EclipseLink、OpenJPA等。JPA是一套规范,不是一套产品,Hibernate是一套产品,如果这些产品实现了JPA规范,那么我们可以把它们叫作JPA的实现产品。
Spring Data JPA是Spring Data的一个子项目,它通过提供基于JPA的Respository,极大地减少了JPA作为数据访问方案的代码量。通过Spring Data JPA框架,开发者可以省略实现持久层业务逻辑的工作,唯一要做的,就只是声明持久层的接口,其他都交给Spring Data JPA来帮你完成。
Spring Data JPA的最顶层接口是Repository,该接口是所有Repository类的父类,具体代码如下:
Repository类下没有任何的接口,只是一个空类。Repository接口的子类有CrudRepository、PagingAndSortingRepository、JpaRepository等。其中CrudRepository类提供了基本的增删改查等接口,PagingAndSortingRepository类提供了基本的分页和排序等接口,而JpaRepository是CrudRepository和PagingAndSortingRepository的子类,继承了它们的所有接口。在真实的项目当中,我们都是通过实现JpaRepository或者其子类进行基本的数据库操作,JpaRepository的具体代码如下:
Repository接口间的继承关系如图3-1所示。通过该继承图,可以清楚地知道接口间的继承关系。在项目中,一般都是实现JapRepository类,加上自己定义的业务方法,来完成我们的业务开发。
图3-1 Repository接口间继承关系