spring data jpa 参数为null查询所有,否则根据参数查询

@Override
    public List<Brand> getBrandList(Map map) {
        String search = (String) map.get("search");
        String pageNum = (String) map.get("pageNum");
        String pageSize = (String) map.get("pageSize");
        Integer pageNum1=Integer.valueOf(pageNum);
        Integer pageSize1=Integer.valueOf(pageSize);
        Specification<Brand> specification=new Specification<Brand>() {
            //select * from tb_brand (where name like? ) limit 0,10;
            @Override
            public Predicate toPredicate(Root<Brand> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
                Path<Object> name = root.get("name");
                List<Predicate> predicateList = new ArrayList<>();
                if (search!=null){
                    Predicate  p1 = criteriaBuilder.like(name.as(String.class),"%"+search+"%");
                    predicateList.add(p1);
                }
                Predicate[] pre = new Predicate[predicateList.size()];
                return criteriaQuery.where(predicateList.toArray(pre)).getRestriction();
            }
        };


        Pageable pageable=new PageRequest(pageNum1-1,pageSize1);
        Page<Brand> page=brandDao.findAll(specification,pageable);
        List<Brand> list = page.getContent();
        for (int i=0;i<list.size();i++){
            Brand brand = list.get(i);

            System.out.println(list);
        }

        return list;
    }

猜你喜欢

转载自www.cnblogs.com/yscec/p/12149941.html