1、1号接口Repository,又称作标识接口,里面什么方法都没有定义,但是它是一个jpa持久层接口的标识,只有继承了该接口的dao接口,才能被SpringData JPA实例化,而且它也提供了一些jpa持久化操作的规范(按照命名方法查询持久化数据、使用@Query注解查找持久化数据)
2、2号接口CrudRepository,顾名思义,又称作增删改查接口,它继承自Repository接口,提供了很多JPA规范的操作持久层数据的方法
3、3号接口PagingAndSortingRepository,顾名思义,又称作分页排序接口,它继承自CrudRepository接口,除了继承了CrudRepository接口的方法,还定义了和分页排序相关的方法
4、4号接口JpaRepository,它继承自PagingAndSortingRepository接口,拥有上述3个接口的所有特性和方法,它是SpringData JPA开发中最重要的一个接口它把前3个接口中定义的方法进行了重写,适配了它们的返回值,避免了使用JPA操作持久化数据时结果的强制类型转换;它也定义了几个自己特有的方法deleteAllInBatch、getOne等;它实现了QueryByExampleExecutor接口,具备一定的条件查询能力
5、5号接口JpaSpecificationExecutor,它没有继承自任何接口,它不能单独使用,必须结合以上4个接口之一使用,一般在SpringData JPA开发中都是 JpaRepository + JpaSpecificationExecutor 接口一起使用,它提供了带条件查询的能力,而且还可以实现带条件分页、排序查询。