JPA多条件组合查询(CriteriaQuery)

匿名 (未验证) 提交于 2019-12-03 00:22:01

JPA多条件组合查询(CriteriaQuery)

    /**查询Demo结果集      * @return      */     public List<Demo> findDemoList(ParamVO param,Pageable pageable,List<Integer> userIds){         List<Demo> result = demoRepository.findAll(new Specification<Demo>(){             @Override             public Predicate toPredicate(Root<Demo> root, CriteriaQuery<?> query, CriteriaBuilder cb) {                 List<Predicate> predicates = new ArrayList<Predicate>();                 // is null                 predicates.add(root.get("fId").isNull());                  // =                 if(!StringUtils.isNoneBlank(param.getPoName())){                     predicates.add(cb.equal(root.get("poName"), "%"+param.getPoName()+"%"));                 }                 // like                 if(!StringUtils.isNoneBlank(param.getPoName())){                     predicates.add(cb.like(root.get("poName"), "%"+param.getPoName()+"%"));                 }                                 // between                 if(!StringUtils.isNoneBlank(param.getBeginDate())&&!StringUtils.isNoneBlank(param.getEndDate())){                     predicates.add(cb.between(root.get("date"), param.getBeginDate(),param.getEndDate()));                 }                 //in                 predicates.add(root.get("userId").in(userIds));                 return query.where(predicates.toArray(new Predicate[predicates.size()])).getRestriction();             }         },pageable).getContent();         return result;     } 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!