动态查询

public List<TsActivityVo>   findPicture(TsActivityForm tsActivityForm){
Integer activityType= tsActivityForm.getActivityType();//活动类型
Integer pictureSite = tsActivityForm.getPictureSite();//图片位置
return tsActivityRepo.findAll(where(activityType, pictureSite, 1));
}

private Specification<TsActivityVo> where(Integer activityType,Integer pictureSite,Integer isCurrent) {
return new Specification<TsActivityVo>() {
public Predicate toPredicate(Root<TsActivityVo> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> predicates = new ArrayList();
if (activityType != null && !("").equals(activityType)) {
predicates.add(cb.equal(root.get("activityType"), activityType));
}
if (pictureSite != null && !("").equals(pictureSite)) {
predicates.add(cb.equal(root.get("pictureSite"), pictureSite));
}
if (isCurrent != null && !("").equals(isCurrent)) {
predicates.add(cb.equal(root.get("isCurrent"), isCurrent));
}
return query.where(predicates.toArray(new Predicate[predicates.size()])).getRestriction();
}
};
}
原文地址:https://www.cnblogs.com/lei050/p/8891551.html