Integer num = demoDTO.getNum() == null ? 0 : demoDTO.getNum(); Integer size = demoDTO.getSize() == null ? 10 : demoDTO.getSize(); PageRequest pageRequest = new PageRequest(num, size, new Sort(Sort.Direction.DESC, "userId")); Specification<WorkOrderDO> specification = new Specification<WorkOrderDO>() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { Predicate predicate = cb.conjunction(); //模糊查詢 if (demoDTO.getNum() != null) { predicate.getExpressions().add(cb.like(root.get("num"), "%" + demoDTO.getNum() + "%")); } //準(zhǔn)確查詢 if (demoDTO.getName() != null) { predicate.getExpressions().add(cb.equal(root.get("name"), demoDTO.getName())); } String startTime = demoDTO.getStart(); String endTime = demoDTO.getEnd(); //起始日期 if (startTime != null && !startTime.trim().equals("")) { //時間大于 predicate.getExpressions() .add(cb.greaterThanOrEqualTo(root.get("time").as(String.class), startTime)); } //結(jié)束日期 if (endTime != null && !endTime.trim().equals("")) { //時間小于 predicate.getExpressions() .add(cb.lessThanOrEqualTo(root.get("time").as(String.class), endTime + " 23:59:59")); } return predicate; } }; Page<WorkOrderDO> page = workRep.findAll(specification, pageRequest);