關於pageHelper無法查到總數踩到的坑


問題代碼

PageHelper.startPage(pageNum,pageSize);
List<pojoVo> pojoVo=robotService.getPageList();
PageInfo pageResult = new PageInfo(pojoVo);

結果

pageResult.getTotal(); //結果為當前頁數量或者沒有
pageResult.getPage(); //結果為1

經過微信小伙伴ken提示;發現是VO拼接姿勢不對

pageHelper是多線程操作,通過new PageInfo()查詢出總條數和總頁數;當為new PageInfo(pojoVo)時,是按照pojoVo去查詢,所以無法查pojo到數據庫中數據的總數的;需要先查出pojoList,然后拼接到Vo里面,在set到pageInfo中

修改后的代碼如下

public CommonReturnType getList(Model model,@RequestParam(value = "pageNum",defaultValue = "1")Integer pageNum,
                        @RequestParam(value = "pageSize",defaultValue = "5")Integer pageSize){
PageHelper.startPage(pageNum,pageSize);
List<Pojo> pojoList=pojoService.getPageList();
PageInfo pageResult = new PageInfo(pojoList);

List<PojoVo> voList=new ArrayList<>();
for(Pojo item:pojoList){
    PojoVo pojoVo=assembleRobotListVo(item);
    voList.add(pojoVo);
}
//這一步記得添加
pageResult.setList(voList);

System.out.println(pageResult.getTotal()); //此處已經查詢出總條數
System.out.println(pageResult.getPages());
System.out.println(pageResult.getSize());
return CommonReturnType.success(pageResult );
}

//拼接vo


private PojoVo assembleRobotListVo(Pojo pojo){
    PojoVo pojoVo=new PojoVo ();
    pojoVo.setId(pojo.getId());
    pojoVo.setMac(pojo.getMac());
    pojoVo.setName(pojo.getName());
    return pojoVo;
}

``` 
備注: pojo為實體類  pojoVo為拼接的Vo顯示字段


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM