public static Specification<User> byKeyword(String keyword, String role, String active){
return (Root<User> root, CriteriaQuery<?> query, CriteriaBuilder cb) -> {
List<Predicate> predicates = new ArrayList<>();
if (StringUtils.hasText(keyword)) {
predicates.add(
cb.or(
cb.like(root.get(User_.email), "%" + keyword + "%"),
cb.like(root.get(User_.username), "%" + keyword + "%")
));
}
if (StringUtils.hasText(role) && !"ALL".equals(role)) {
ListJoin<User, String> roleJoin = root.join(User_.roles);
predicates.add(cb.equal(roleJoin, role));
}
if (StringUtils.hasText(active)) {
predicates.add(cb.equal(root.get(User_.active), Boolean.valueOf(active)));
}
return cb.and(predicates.toArray(new Predicate[predicates.size()]));
};
}
UserSpecifications.java 文件源码
java
阅读 31
收藏 0
点赞 0
评论 0
项目:spring-microservice-sample
作者:
评论列表
文章目录