一 点睛
Spring Data JPA提供了一个Specification(规范)接口让我们可以更方便地构造准确查询,Specification接口定义了一个toPredicate方法来构造条件查询。
二 详细介绍
1 定义
我们的接口必须继承JpaSpecificationExecutor,继承该接口,是为了使用接口中定义的方法。
示例代码如下
public interface CustomerRepository extends CrudRepository<Customer, Long>, JpaSpecificationExecutor {
…
}
2 JpaSpecificationExecutor接口
JpaSpecificationExecutor接口可以提供一些方法,这些方法能使用Specification接口,例如下面这个方法
List<T> findAll(Specification<T> spec);
该方法返回所有匹配Specification条件的实体。
JpaSpecificationExecutor接口代码如下。
public interface JpaSpecificationExecutor<T> {
T findOne(Specification<T> spec);
List<T> findAll(Specification<T> spec); //该方法返回所有匹配Speci