private Specification<CuserQuestion> buildSpecification(CuserQuestionDTO cuserQuestionDTO) {
return new Specification<CuserQuestion>() {
public Predicate toPredicate(Root<CuserQuestion> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
List<Predicate> predicate = new ArrayList<Predicate>();
if (!CheckParam.isNull(cuserQuestionDTO.getContent())) {
predicate.add(builder.like(root.get("content"), "%" + cuserQuestionDTO.getContent() + "%"));
}
if (!CheckParam.isNull(cuserQuestionDTO.getStatus())) {
predicate.add(builder.equal(root.get("status"),cuserQuestionDTO.getStatus()));
}
if (!CheckParam.isNull(cuserQuestionDTO.getEndTime())) {
predicate.add(builder.between(root.get("createTime"),cuserQuestionDTO.getStartTime(),cuserQuestionDTO.getEndTime()));
}
predicate.add(builder.equal(root.get("isDelete"),0));
Predicate[] pre = new Predicate[predicate.size()];
return query.where(predicate.toArray(pre)).getRestriction();
}
};
}
ParamConfig paramConfig = new ParamConfig();
Integer pageSize = paramConfig.getPageSize(commentOrderDTO.getPageSize());
Integer pageOne = paramConfig.getPageNo(commentOrderDTO.getPageOne());
Sort sort = new Sort(Sort.Direction.DESC, "id");
Pageable pageable = PageRequest.of(pageOne,pageSize ,sort);