在 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