1.JpaSpecificationExecutor:JPA规则执行者
- JpaSpecificationExecutor: 是JPA2.0提供的Criteria API的使用封装,可以用于动态生成Query来满足我们业务中的各种复杂场景,让我们的查询变得更加简单
- 首先让我们repository包中的接口继承JpaSpecificationExecutor接口,并且需要加上泛型,例如,其中泛型中的Employee即使我们想要操作的类
public interface EmployeeRepository extends JpaRepository<Employee,Long>,JpaSpecificationExecutor<Employee> {
- 在查询时,只需要在findAll方法中 new一个内部类,在内部类中的方法中写上查询条件即可,最后调用findAll方法,并且将返回值传入参数列表,这样返回的就是一个list集合
Specification spec = new Specification<Employee>() {
@Override
/**
*Root:用于拿到要操作的字段
*Cb:判断查询时字段是什么关系(> , < , = < like等等)
*/
public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) {
//加上第一个条件: username like '%1%'
Path path1 = root.get(&#