jpa动态分页多条件查询
发布时间
阅读量:
阅读量
多条件动态分页:
Specification<ExaminationPaperDocument> spec = new Specification<ExaminationPaperDocument>() {
@Override
public Predicate toPredicate(Root<ExaminationPaperDocument> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
List<Predicate> predicates = new ArrayList<>();
//根据学段查询
if (StringUtils.isNotEmpty(conditionDocumentBo.getEducationStageCode())) {
predicates.add(criteriaBuilder.equal(root.get("educationStageCode"), conditionDocumentBo.getEducationStageCode()));
}
//根据年级查询
if (StringUtils.isNotEmpty(conditionDocumentBo.getGradeCode())) {
predicates.add(criteriaBuilder.equal(root.get("gradeCode"), conditionDocumentBo.getGradeCode()));
}
//根据科目查询
if (StringUtils.isNotEmpty(conditionDocumentBo.getSubjectCode())) {
predicates.add(criteriaBuilder.equal(root.get("subjectCode"), conditionDocumentBo.getSubjectCode()));
}
//根据版本查询
if (StringUtils.isNotEmpty(conditionDocumentBo.getVersionCode())) {
predicates.add(criteriaBuilder.equal(root.get("versionCode"), conditionDocumentBo.getVersionCode()));
}
//根据地址查询
if (StringUtils.isNotEmpty(conditionDocumentBo.getAddressCode())) {
predicates.add(criteriaBuilder.equal(root.get("addressCode"), conditionDocumentBo.getAddressCode()));
}
//根据年份查询
if (StringUtils.isNotEmpty(conditionDocumentBo.getYearCode())) {
predicates.add(criteriaBuilder.equal(root.get("yearCode"), conditionDocumentBo.getYearCode()));
}
//根据考试查询
if (StringUtils.isNotEmpty(conditionDocumentBo.getExamCode())) {
predicates.add(criteriaBuilder.equal(root.get("examCode"), conditionDocumentBo.getExamCode()));
}
//根据文件名查询
if (StringUtils.isNotEmpty(conditionDocumentBo.getFileName())) {
predicates.add(criteriaBuilder.like(root.get("fileName"), "%" + conditionDocumentBo.getFileName() + "%"));
}
//根据文件名查询
if (StringUtils.isNotEmpty(conditionDocumentBo.getTypeCode())) {
predicates.add(criteriaBuilder.equal(root.get("typeCode"), conditionDocumentBo.getTypeCode()));
}
if (StringUtils.isNotEmpty(conditionDocumentBo.getTypeCode())) {
predicates.add(criteriaBuilder.equal(root.get("typeCode"), conditionDocumentBo.getTypeCode()));
}
if (conditionDocumentBo.getWhetherPrivate()!=null) {
predicates.add(criteriaBuilder.equal(root.get("whetherPrivate"), conditionDocumentBo.getWhetherPrivate()));
}
Predicate[] arr = new Predicate[predicates.size()];
return criteriaBuilder.and(predicates.toArray(arr));
}
};
//默认分页1-5条
if (conditionDocumentBo.getPageNum()==null||conditionDocumentBo.getPageNum() <= 0) {
conditionDocumentBo.setPageNum(1);
}
if (conditionDocumentBo.getPageSize()==null||conditionDocumentBo.getPageSize() <= 0) {
conditionDocumentBo.setPageSize(5);
}
List<ExaminationPaperDocument> all = examinationPaperDocumentRepository.findAll(spec);
Pageable pageable = PageRequest.of(conditionDocumentBo.getPageNum() - 1, conditionDocumentBo.getPageSize());
代码解读
conditionDocumentBo是我的条件对象,ExaminationPaperDocument是数据库实体对象
全部评论 (0)
还没有任何评论哟~
