3.1 Spring Data JPA介绍 |
|
本节主要介绍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类的父类。具体代码如下:
package org.springframework.data.repository; import java.io.Serializable; public interface Repository<T, ID extends Serializable> { }
Repository类下没有任何接口,只是一个空类。Repository接口的子类有CrudRepository、PagingAndSortingRepository、JpaRepository等。其中,CrudRepository类提供了基本的增删改查等接口,PagingAndSortingRepository类提供了基本的分页和排序等接口,而JpaRepository是CrudRepository和PagingAndSortingRepository的子类,继承了它们的所有接口。所以在真实的项目当中,我们都是通过实现JpaRepository或者其子类进行基本的数据库操作。JpaRepository的具体代码如下:
Repository接口间的继承关系如图3-1所示。通过该继承图可以清楚地知道接口间的集成关系。在项目中,我们一般都是实现JapRepository类,加上自己定义的业务方法来完成业务开发。
图3-1 Repository接口间的继承关系