`public List query(ReportQuery query) {
// 构造自定义查询条件
Specification specification = new Specification() {
@Override
public Predicate toPredicate(Root root, CriteriaQuery criteriaQuery, CriteriaBuilder criteriaBuilder) {
// 可以多个条件 所以是数组
ArrayList predicateList = new ArrayList<>();
//关键字
if (query.getTitle() != null) {
Predicate title = criteriaBuilder.like(root.get("title"), "%" + query.getTitle() + "%");
predicateList.add(title);
}
Predicate[] predicates = predicateList.toArray(new Predicate[predicateList.size()]);
return criteriaBuilder.and(predicates);
}
};
//排序
Sort sort = Sort.by(Sort.Direction.DESC, "createTime");
return reportRepository.findAll(specification,sort);`