關於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顯示字段

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