在 CmsPageService 中添加分页查询code
总结:当查询条件多时,须要将参数封装到example中,如果其中条件不是相等匹配,须要用条件匹配器设置对象
public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest){ //定义条件匹配器 ExampleMatcher exampleMatcher = ExampleMatcher.matching() .withMatcher("pageAliase", ExampleMatcher.GenericPropertyMatchers.contains()); //条件值对象 CmsPage cmsPage = new CmsPage(); //设置条件值(站点id) if(StringUtils.isNotEmpty(queryPageRequest.getSiteId())){ cmsPage.setSiteId(queryPageRequest.getSiteId()); } //设置模板id做为查询条件 if(StringUtils.isNotEmpty(queryPageRequest.getTemplateId())){ cmsPage.setTemplateId(queryPageRequest.getTemplateId()); } //设置页面别名做为查询条件 if(StringUtils.isNotEmpty(queryPageRequest.getPageAliase())){ cmsPage.setPageAliase(queryPageRequest.getPageAliase()); } //定义条件对象Example Example<CmsPage> example = Example.of(cmsPage,exampleMatcher); //分页参数 if(page <=0){ page = 1; } page = page -1; if(size<=0){ size = 10; } Pageable pageable = PageRequest.of(page,size); Page<CmsPage> all = cmsPageRepository.findAll(example,pageable);//实现自定义条件查询而且分页查询 QueryResult queryResult = new QueryResult(); queryResult.setList(all.getContent());//数据列表 queryResult.setTotal(all.getTotalElements());//数据总记录数 QueryResponseResult queryResponseResult = new QueryResponseResult(CommonCode.SUCCESS,queryResult); return queryResponseResult; }
注意一、:须要判断页码和每页大小是否符合blog
注意二、为何要使用条件匹配器?get