0
点赞
收藏
分享

微信扫一扫

JpaSpecificationExecutor

干自闭 2022-07-18 阅读 153


条件分页查询

@Transactional(readOnly = true)
@SuppressWarnings("unchecked")
public Page<GroupDetails> findAllByPage(String uid, String title, LocalDateTime startTime, LocalDateTime endTime, Pageable pageable) {
return repository.findAll((root, query, criteriaBuilder) -> {
List<Predicate> predicateList = new ArrayList<>();
predicateList.add(criteriaBuilder.equal(root.get("userPid"), uid));
if (startTime != null || endTime != null) {
predicateList.add(criteriaBuilder.between(root.get("createTime"), startTime, endTime));
}
if (title != null && !title.isEmpty()) {
predicateList.add(criteriaBuilder.like(root.get("groupName"), "%" + title + "%"));
}
if (predicateList.size() > 0) {
Predicate[] predicates = new Predicate[predicateList.size()];
for (int i = 0; i < predicates.length; i++) {
predicates[i] = predicateList.get(i);
}
query.where(predicates);
}
query.orderBy(criteriaBuilder.desc(root.get("createTime")));
return query.getRestriction();
}, pageable);
}

JpaSpecificationExecutor_分页查询


举报

相关推荐

0 条评论