问题描述及解决方案

1、如下配置BaseService分页total总数正常,但是返回的实体为mapper层实体,与需求不一致,因此进行了调整
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;import java.util.List;/*** @param <Param> 泛型request* @param <Result> 泛型response*/
public interface BaseService<Param, Result> {/*** 分页查询** @param param 请求参数DTO* @return 分页集合*/default PageInfo<Result> page(PageParam<Param> param) {return PageHelper.startPage(param).doSelectPageInfo(() -> list(param.getParam()));}/*** 集合查询** @param param 查询参数* @return 查询响应*/List<Result> list(Param param);
}
2、调整如下后,返回数据类型满足,但是出现了total总数等于每页数量问题
/*** @param <Param> 泛型request* @param <Result> 泛型response*/
public interface BaseService<Param, Result> {/*** 分页查询** @param param 请求参数DTO* @return 分页集合*/default PageInfo<Result> page(PageParam<Param> param) {PageHelper.startPage(param);List<Result> list = parse(list(param.getParam()));PageInfo<Result> pageInfo = new PageInfo<>(list);return pageInfo;}/*** 集合查询** @param param 查询参数* @return 查询响应*/List<Result> list(Param param);/*** 补充SO层字段** @param mapperResult* @return*/List<Result> parse(Collection mapperResult);
}
3、再次进行调整
Page page = PageHelper.startPage(pageNum, pageSize);
//使用page的getTotal()
int total = page.getTotal();
4、最终的BaseService如下
/*** @param <Param> 泛型request* @param <Result> 泛型response*/
public interface BaseService<Param, Result> {/*** 分页查询** @param param 请求参数DTO* @return 分页集合*/default PageInfo<Result> page(PageParam<Param> param) {Page page = PageHelper.startPage(param);List<Result> list = parse(list(param.getParam()));long total = page.getTotal();//一定要在获取list之后取totalPageInfo<Result> pageInfo = new PageInfo<>(list);pageInfo.setTotal(total);return pageInfo;}/*** 集合查询** @param param 查询参数* @return 查询响应*/List<Result> list(Param param);/*** 补充SO层字段** @param mapperResult* @return*/List<Result> parse(Collection mapperResult);}
5、如果各位大佬还有更好的解决方式,还请留下您宝贵的建议!

Pagehelper获取total错误解决方案相关推荐

  1. ruoyi框架分页总条数total返回错误解决方案

    ruoyi框架分页总条数total返回错误解决方案 原因:因为自己重新定义了分页方法,如: 就会出现总数返回数据错误问题 总数会变成当前页条数的 这是分页的核心,这里传过来的list 没有 insta ...

  2. PageHelper关于Mybatis一对多查询返回Total错误

    PageHelper关于Mybatis一对多查询返回Total错误 遇到的问题: pagehelper进行一对多查询时,返回的总数量对不上,例如需求是一个页面展示10个spu信息,实际上只展示了6个s ...

  3. C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)6 -将项目部署到IIS,及常见错误解决方案

    C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)6 -将项目部署到IIS,及常见错误解决方案 1.前言 2.安 ...

  4. PageHelper获取总数

    使用PageHelper获取不到总数问题 使用PageHelper分页最好在service层需要分页的.查询数据库方法前后(步骤如下),中间不要有其他查询以及不能有一对多的联表查询,否则可能造成分页失 ...

  5. uni-app:获取当前经纬度解决方案+如何布置全局组件

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.布置全局组件 在我们开发的过程中,会碰到一个现象,就是在页面里面引入组件,总算要写import,components才能引用,这里给大 ...

  6. @Autowire注入了bean(A)在当前类,但其他类需要调用这个A,报null异常,使用get获取bean为解决方案

    @Autowire注入了bean(A)在当前类,但其他类需要调用这个A,报null异常,使用get获取bean为解决方案 问题背景 解决方案 心得 Lyric: 远远抛开一切 问题背景 在做项目时,我 ...

  7. ZeroMQ接口函数之 :zmq_strerror - 获取ZMQ错误描述字符串

    Name zmq_strerror - 获取ZMQ错误描述字符串 Synopsis const char *zmq_strerror (int errnum); Description zmq_str ...

  8. php捕获500错误信息,php – 如何获取有关错误500的更多信息 – 内部服务器错误?...

    我在我的 PHP网站的许多部分使用$ajax请求一切正常,直到几天前我所有的$ajax请求开始给出错误500 – 内部服务器错误. 我可以在控制台中看到该错误,并且我还使用错误处理程序来获取有关错误的 ...

  9. mysql语句报错1403_GoldenGate SQL error 1403 mapping 错误解决方案

    GoldenGate SQL error 1403 mapping 错误解决方案 故障现象: 2011-09-06 15:45:29 WARNING OGG-01004 Oracle GoldenGa ...

  10. push to origin/master was rejected错误解决方案(IDEA)

    push to origin/master was rejected错误解决方案(IDEA) 参考文章: (1)push to origin/master was rejected错误解决方案(IDE ...

最新文章

  1. Centos-6 编译安装实现LAMP,wordpress最新版
  2. 学习OpenCV——SVM
  3. 杭电1260java实现
  4. 如何在IPFS里面上传一张图片
  5. C#模拟POST提交表单(一)--WebClient
  6. Solaris是出色的Java开发平台的原因
  7. 2018-2019 20165208 网络对抗 Exp3 免杀原理与实践
  8. 《数据结构与算法分析》学习笔记(二)——算法分析
  9. linux改键盘映射
  10. SCRUM 12.23
  11. 多媒体计算机组装过程,多媒体技术及《计算机组装及维护》课精彩结合.doc
  12. visual studio 2015无法打开包括文件
  13. Ubuntu录制gif动态图
  14. word表格转图片线条不会缺失方法
  15. arcengine cliasic code(转)基于ArcGIS Engine + C#实现用户自定义动态电力符号
  16. 多维度对抗 Windows AppLocker
  17. 某网站电商运营数据分析案例
  18. 单片机“左移右移理论”,详解
  19. 计算机/微机组成及相关概念
  20. 2021年安全员-C证(上海市)考试APP及安全员-C证(上海市)新版试题

热门文章

  1. python alpha通道_Python Pillow v2.6.0 paletted PNG(256)如何添加Alpha通道?
  2. 内存的速度和CPU缓存速度比较
  3. java线程锁有哪几种_Java锁有哪些种类,以及区别
  4. 重装系统显示“安装程序正在应用系统设置“静止不动
  5. foxmail邮箱修改服务器,foxmail基本设置方法.foxmail使用技巧
  6. 重置计算机的网络配置是什么意思,电脑怎么重置网络设置 win10网络重置后连不上网怎么办...
  7. Kafka的Topic删不掉
  8. DOS命令关机小程序
  9. tp框架中构造函数__construct()与初始化函数_initialize()的区别
  10. 数据集 过滤时 RecordCount 属性