Mybatis分页插件PageHelper,没有写分页却被分页了

        运营人员最近反馈有个下拉选不正常,偶尔数据不全。想着单表查询怎么可能有问题,经过反复测试发现问题还真存在,于是看了日志发现查询的时候偶尔会出现带limit,心里一万头草泥马奔腾而过......

        不过问题终究是要解决的,一步步分析问题,由于项目使用了 pagehelper 分页插件,大概率是插件导致的。

PageHelper.startPage(req.getPageNum(), req.getPageSize());

其中,参考了 pagehelper的使用及避坑_大唐冠军侯的博客-CSDN博客_pagehelper类型擦除

博主的小心避坑2:传参对象的分页字段是pageNum和pageSize,难道是这个问题???

        在代码中各种debug,最终发现有段代码很可疑(ps:这段代码和单表查询的无关联,是两个业务),注释后反复测试发现问题解决了。虽然解决了但还是很疑惑,感觉就像是被引用传递了..

        下班后再来想想这个问题,再看看博主的小心避坑1:上一个PageHelper.startPage()未被消费,呃。。。突然好像发现了什么,再回过头去看注释代码,上面的代码调用了PageHelper.startPage()方法,但是后面没有一个Mapper的查询方法来消费掉。所以你的这个查询就用到了上一个的分页,恍然大悟......

        写到最后,有时候碰到问题要多看几遍,每次看可能会有不一样的收获,当然有时也需要记录下来。

你可能感兴趣的:(java,java)