1.Repository层:
public interface XRepository extends JpaRepository<X,主键id类型>,JpaSpecificationExecutor<X> {}
2.service层:
R<PageVo> findDecorationSingleList(String style, String functionalRoom, String part, String color, String page, String rows);
3.serviceImpl层
@Override public R<PageVo> findDecorationSingleList(String style, String functionalRoom, String part, String color, String page, String rows) { Page<DecorationSingle> decorationSingleList=null; Sort sort = new Sort(Sort.Direction.DESC, "addTime"); PageRequest pageRequest = new PageRequest(Integer.parseInt(page)-1, Integer.parseInt(rows), sort); Specification specification=new Specification<DecorationSingle>(){ @Override public Predicate toPredicate(Root<DecorationSingle> root, CriteriaQuery<?> query, CriteriaBuilder builder) { List<Predicate> predicates = new ArrayList<Predicate>(); if(StringUtils.isNotBlank(style)){ predicates.add(builder.equal(root.get("style"), style)); } if(StringUtils.isNotBlank(functionalRoom)){ predicates.add(builder.equal(root.get("functionalRoom"), functionalRoom)); } if(StringUtils.isNotBlank(part)){ predicates.add(builder.equal(root.get("part"), part)); } if(StringUtils.isNotBlank(color)){ predicates.add(builder.equal(root.get("color"), color)); } predicates.add(builder.equal(root.get("singleStatus"), 0)); return builder.and(predicates.toArray(new Predicate[predicates.size()])); } }; decorationSingleList=decorationSingleRepository.findAll(specification,pageRequest); List<DecorationSingleVO> decorationSingleVO = new ArrayList<>(); for (DecorationSingle decorationSingle:decorationSingleList){ DecorationSingleVO decorationSingleVo = new DecorationSingleVO(); BeanUtils.copyProperties(decorationSingle,decorationSingleVo); decorationSingleVO.add(decorationSingleVo); } return new R<>(new PageVo((int)decorationSingleList.getTotalElements(),Integer.valueOf(page),Integer.valueOf(rows),decorationSingleVO)); }