当前位置:   article > 正文

使用PageHelper分页插件,发现获取到的total总记录数量不对,无法获取到正确的total数量_pagehelper分页总数量出错

pagehelper分页总数量出错

目录

1.1、错误描述

1.2、解决方案


1.1、错误描述

周一在工作中,写了一个列表分页的接口,其中使用的是PageHelper分页依赖,原本想着挺简单的,也就是使用PageHelper.startPage(pageNum, pageSize);方法就可以了,代码写完了之后,前端联调发现一个问题:每次获取到的记录总数total总是查询出来的记录数量,而不是数据库中的总记录数量。举个例子:

前端传递pageNum=2,pageSize=10,本次查出结果是7条记录,那么接口返回的total也是7条,但是实际上,数据库中的总记录是17条。

发现这个问题之后,我就跟着我的代码排查了一下,最开始的代码大概如下所示:

看了代码发现这样写好像也没啥问题,没看出什么结果,就百度了一圈,发现还是没解决问题,百度给出的答案大部分都是下面这种:

  • 是否正确使用分页插件。
  • 是否自定义了RowBound对象。
  • 未正确关闭 PageHelper 的分页上下文。

上面的几种情况都不是我遇见的,我又仔细想了下,突然看到我代码里面通过mapper查询出来的List结果集,和我返回给前端的List结果集是两个不同的,按照PageHelper分页的原理,它缓存的是第一次SQL查询的结果集,而如果后面对第一次查出的结果集有二次处理,那么PageHelper就无法获取到实际的total数量。

既然问题找到了,那就是要如何解决啦???下面看下如何解决这个问题。

1.2、解决方案

最终的解决方案,就是通过获取到PageInfo对象,然后手动的将total总记录数量设置到要返回的数据里面。

到此,使用PageHelper分页插件,发现获取到的total总记录数量不对,无法获取到正确的total数量的问题就解决啦。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/993894
推荐阅读
相关标签
  

闽ICP备14008679号