直接代码附上:
SimpleDateFormat sdfmat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
if (StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)) {
predicates.add(cb.between(root.get(“time”),
sdfmat.parse(sdfmat.format(sdf.parse(startTime).getTime())),
sdfmat.parse(sdfmat.format(sdf.parse(endTime).getTime())));
}
} catch (Exception e) {
}
// 完整排序分页多条件查询如下:
Sort sort = new Sort(Sort.Direction.DESC, "createTime");
PageRequest pageRequest=PageRequest.of(start/length,length, sort);
@SuppressWarnings("serial")
Specification<Dept> spec = new Specification<Dept>() {
@Override
public Predicate toPredicate(Root<Dept> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> list = new ArrayList<Predicate>();
if(StringsUtils.hasText(linkPerson)) {
list.add(cb.like(root.get("linkPerson").as(String.class), "%" + linkPerson + "%"));
}
if(StringsUtils.hasText(company)) {
list.add(cb.like(root.get("company").as(String.class), "%" + company + "%"));
}
return cb.and(list.toArray(new Predicate[list.size()]));
}
};
Page<Dept> pageResult = deptDao.findAll(spec, pageRequest);