Spring Data JPA是Spring Data项目下的一个子模块,提供了一套基于JPA标准的操作数据库的简化方案,底层默认的依赖是hibernate JPA来实现的。Spring Data JPA底层默认使用的ORM框架是Hibernate。
特点
我们只需要编写接口并继承Spring Data JPA中所提供的接口就可以不再编写单表的CRUD等接口,对于分页,排序,多条件查询和动态复杂查询等也都提供有支持。其实这种技术,在现在的持久层框架中都有支持,比如Mybatis的插件,Tk Mybatis和Mybatis Plus等也都可以做到,主要帮我们做的就是单表的增删改查(CRUD)这种通用的操作。让后端开发更简单。
常用接口
- JpaRepository
- JpaSpecificationExecutor
首先看一下这两个常用接口的继承关系图
接口继承关系图
Repository
该接口就是一个标识接口
CrudRepository
该接口提供了单表的CRUD操作
PagingAndSortingRepository
该接口提供了两个方法,一个用户排序,一个用于分页
QueryByExampleExecutor
该接口提供了按照条件进行分页,排序,查询的接口
JpaRepository
该接口对上边的几个接口进行了继承及封装,是我们实现单表增删改查主要继承的接口,可以满足大部分需求
JpaSpecificationExecutor
该接口弥补了JpaRepository的不足,且不再是Repository接口的子接口。JpaSpecificationExecutor接口可以实现动态条件查询(即动态SQL的编写)
SpringDataJpa案例: SpringDataJpa案例