Mybatis添加了PageHelper分页,分页却不起作用

阐述问题

因为 com.github.pagehelper.PageHelper 分页有一个坑在里面,分页条件一定要放在查询正上方,如果中间加入其他查询条件,或者别的代码,分页就会失效(具体失效原因可参考以下博主深度解析PageHelper分页源码SpringBoot项目中,如何更规范的使用PageHelper分页?_好好学java-CSDN博客)。

发现下面代码明明加了分页,却一直不起作用。

    @Override
    public TableResult listProjectPeriod(ListProjectPeriodRequestDTO dto) throws Exception {
        //分页
        PageHelper.startPage(dto.getPage(), dto.getLimit());
        //如果页面没有定制显示的职务,就默认只查询关键岗位职务
        if(null == dto.getDutyList() || dto.getDutyList().size() == 0){
            dto.setDutyList(PersonTypeEnum.cruxDuty());
        }
        //查询
        Page<ListProjectPeriodResponseDTO> rolePage = projectPeriodMapper.listProjectPeriod(dto);
        //封装页面显示的建设单位
        List<ListProjectPeriodResponseDTO> list = rolePage.getResult();
        long total = rolePage.getTotal();

        return new TableResult(CodeEnum.SUCCESS.get(), list, total, "查询成功!");
    }

后面修改为以下代码即可

    @Override
    public TableResult listProjectPeriod(ListProjectPeriodRequestDTO dto) throws Exception {
        //如果页面没有定制显示的职务,就默认只查询关键岗位职务
        if(null == dto.getDutyList() || dto.getDutyList().size() == 0){
            dto.setDutyList(PersonTypeEnum.cruxDuty());
        }

        //分页
        PageHelper.startPage(dto.getPage(), dto.getLimit());
        //查询
        Page<ListProjectPeriodResponseDTO> rolePage = projectPeriodMapper.listProjectPeriod(dto);
        //封装页面显示的建设单位
        List<ListProjectPeriodResponseDTO> list = rolePage.getResult();
        long total = rolePage.getTotal();

        return new TableResult(CodeEnum.SUCCESS.get(), list, total, "查询成功!");
    }

版权声明:本文为waitle500原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。