使用pageHelper對list進行分頁,遇到了查詢出來的資料剛開始正常一次,多次重繪后會出現兩遍的情況,但是在Mysql中用SQL直接查詢的結果是正常的一遍,不重復,
@Override
public PageableObject<InfoVO> queryByName(InfoRequest request) {
List<InfoVO> InfoVO = InfoMapper.findName(request.getName()).stream().distinct().collect(toList());
Page list = PageHelper.startPage(request.getPage(), request.getPageSize());
list.addAll(InfoVO);
list.setTotal(list.size());
return PageUtil.genPageableObject(list);
}
修改查詢和使用pageHelper的順序后,變成穩定出現兩遍的錯誤😂😂
@Override
public PageableObject<InfoVO> queryByName(InfoRequest request) {
Page list = PageHelper.startPage(request.getPage(),request.getPageSize());
List<InfoVO> InfoVO = InfoMapper.findName(request.getName()).stream().distinct().collect(toList());
list.addAll(InfoVO);
list.setTotal(list.size());
return PageUtil.genPageableObject(list);
}
最后刪去了list的addAll和setTotal解決了
@Override
public PageableObject<InfoVO> queryByName(InfoRequest request) {
Page list = PageHelper.startPage(request.getPage(),request.getPageSize());
List<InfoVO> InfoVO = InfoMapper.findName(request.getName()).stream().distinct().collect(toList());
return PageUtil.genPageableObject(list);
}
原因分析:
PageHelper利用了mybatis提供的攔截器,重新拼裝分頁SQL,完成分頁,(第一種情況)先進行查詢,再用PafeHelper對查詢結果List分頁,出現一次,多次重繪出現重復,暫時不知;(第二種情況)PageHelper開啟分頁后,對后面的第一條查詢SQL起作用,又添加list操作,畫蛇添足導致重復,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/258078.html
標籤:其他
上一篇:SQL練習43:將所有to_date為9999-01-01的全部更新為NULL,且 from_date更新為2001-01-01
