查询示例
public Page<Student> queryList(StudentVO studentVO){
int page = 1;
int size = 20;
// 创建Pageable对象,页数从0开始查询
PageRequest pageRequest = PageRequest.of(page-1, size);
// 拉姆达表达式
Specification<Student> userSpecification = (root, query, criteriaBuilder)->buildQueryParam(studentVO, root, criteriaBuilder);
Page<Student> all = studentDao.findAll(userSpecification, pageRequest);
return all;
}
查询的方法:
private Predicate buildQueryParam(StudentVO studentVO, Root<Student> root, CriteriaBuilder criteriaBuilder){
List<Predicate> list = new ArrayList<>();
// 拼条件
if(studentVO.getAge() != null){
list.add(criteriaBuilder.equal(root.get("age"), studentVO.getAge()));
}
// 转换为Predicate[]
Predicate[] predicates = list.to