【实战场景】PageHelper分页插件,total总数不一致问题
- 一.报错背景
- 二.错误剖析
- 三.解决方案
- 1、方案一
- 2、方案二
- 我是杰叔叔,一名沪漂的码农,下期再会!
一.报错背景
在使用mybatisPlus查询某个渠道下面的订单列表,然后使用pageHelper进行分页辅助,发现最终response中的total的总数和实际数据库的不一致
二.错误剖析
我代码里面通过mapper查询出来的List结果集,和我返回给前端的List结果集是两个不同的,按照PageHelper分页的原理,它缓存的是第一次SQL查询的结果集,而如果后面对第一次查出的结果集有二次处理,那么PageHelper就无法获取到实际的total数量。
三.解决方案
既然问题找到了,那就是要如何解决啦???下面看下如何解决这个问题。
1、方案一
最终的解决方案,就是通过获取到PageInfo对象,然后手动的将total总记录数量设置到要返回的数据里面
2、方案二
直接返回mapper查询出来的list对象,用pageInfo对象直接包裹,如果有后续的业务逻辑的处理,可以foreach这个list对象,逐条处理即可,
至此,这个问题就已经完美修复了