【Java】PageHelper分页总条数和总页数查询不正确

本文介绍了在使用PageHelper进行分页查询时遇到总条数和总页数不正确的起因和根本原因。问题源于PageHelper通过拦截器返回的数据被二次处理导致信息丢失。排查过程中发现数据丢失在特定的类型转换中。解决方案是通过构造新的Page对象并复制丢失的属性,以保持分页信息的正确性。
摘要由CSDN通过智能技术生成

起因

同事有一个分页查询接口,发现总条目数查询不正确。其原因是对查询数据列表二次处理时造成信息丢失

根本原因

PageHelper使用了MyBatis拦截器功能实现,查询时会将数据重新封装成自定义类型page封装,并由其传输分页信息。

在这里插入图片描述
Page类型继承自ArrayList,平时查询后会用List接口类型接收数据;所以了解不深的人,不会发现这个类型,一般正常使用时,会直接将这个Page交给PageInfo的构造方法进行初始化并返回

简而言之,就是返回的List的真实类型,是含有更多信息的PageHelper的自定义类型Page

在不知情的条件下,如果进行二次封装,很容易就把数据给搞丢了

排查过程

需要带着目的去找:何时将错误的total值写入PageInfo

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值