JpaSpecificationExecutor 接口
一、JpaSpecificationExecutor 接口介绍
1、该接口主要提供了多条件查询的支持,并且可以在查询中添加分页与排序。(之前 PagingAndSortingRepository 接口进行分页和排序的前提条件是 findAll 查询全部。)
2、JpaSpecificationExecutor 是单独存在的、跟之前的继承关系扯不上。独立公关人。
3、一般开发中,都是将 JpaSpecificationExecutor 接口与 JpaRepository 接口配合使用来完成开发。
二、JpaSpecificationExecutor 接口使用
2.1 编写 /src/main/java/cn/yangdh/dao/UsersRepositorySpecification.java 接口
package cn.yangdh.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import cn.yangdh.pojo.Users;
/**
* 该接口 继承了两个接口:JpaRepository接口 、JpaSpecificationExecutor接口
*
* @author *****
*
*/
public interface UsersRepositorySpecification extends JpaRepository<Users, Integer> ,JpaSpecificationExecutor<Users>{
}
2.2 编写测试 /src/test/java/cn/yangdh/test/UsersRepositoryTest.java
单条件查询:
//注入 JPASpecificationExecutor 接口
@Autowired
private UsersRepositorySpecification usersRepositorySpecification;
/*
* JpaSpecificationExecutor 接口
*
* 单条件查询 测试
* demo: where name = "许知远"
*/
@Test
public void testJpaSpecificationExecutor1(){
/*
* Specification<Users> 该对象用于封装要查询的条件的。
*
*/
Specification<Users> spec = new Specification<Users>() {