關於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中線程

修改後的代碼以下code

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

相關文章
相關標籤/搜索