Springboot中根據分頁查詢

在 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

相關文章
相關標籤/搜索