springboot + mybatis分頁插件 pageHelper 不能正確的獲取到 total等信息

<!-- 分頁插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.5</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
            <version>1.2.5</version>
        </dependency>
pagehelper:                                       #pagehelper分頁插件
  auto-runtime-dialect: true
  support-methods-arguments: true
  reasonable: true
  params: count=countSql
public PageInfo<GoodsInfoDto> selectByPageInfo(Integer pageNum, Integer pageSize) throws Exception {
        if (pageNum == null || pageSize == null) {
            throw new BindException("參數錯誤!");
        }
        PageHelper.startPage(pageNum, pageSize);
        List<GoodsInfo> goodsInfos = goodsInfoMapper.selectAll();
        List<GoodsInfoDto> dtos = goodsInfos.stream().map(goodsInfo -> new GoodsInfoDto().convertGoodsInfo(goodsInfo)).collect(Collectors.toList());
        PageInfo<GoodsInfoDto> pageInfo = new PageInfo<>(dtos);
        return pageInfo;

錯誤原因: 在service中,使用dao獲取到數據後因爲的把數據轉成dto之後然後傳入的PageInfo對象中的,所以出現了問題。

如果直接把dao獲取到的數據直接傳遞給PageInfo對象中就不會出現該問題。

修改之後的代碼:

public PageInfo<GoodsInfoDto> selectByPageInfo(Integer pageNum, Integer pageSize) throws Exception {
        if (info.getPageNum() == null || info.getPageSize() == null) {
            throw new BindException("參數錯誤!");
        }
        PageHelper.startPage(info.getPageNum(), info.getPageSize());
        List<GoodsInfo> goodsInfos = goodsInfoMapper.selectAll();
        // 如果在獲取到數據之後就對數據進行轉dto操作的話,會獲取不到total數據,所以又定義了一個PageInfo類然後將數據進行屬性複製,來獲取數據
        PageInfo<GoodsInfoDto> pageInfo1 = new PageInfo<>();
        BeanUtils.copyProperties(new PageInfo<>(goodsInfos), pageInfo1);
        pageInfo1.setList(goodsInfos.stream().map(goodsInfo -> new GoodsInfoDto().convertGoodsInfo(goodsInfo)).collect(Collectors.toList()));
        return pageInfo1;
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章