本文共 1040 字,大约阅读时间需要 3 分钟。
问题描述:在开启分页后对查询的集合进行增删操作,或者通过stream处理分页结果集生成新集合,这可能导致分页参数失效,因为这些操作只影响内存中的集合,不影响数据库中的数据分布和分页设置。
解决方案:确保在分页查询后不修改集合,或者在修改后重新设置分页参数。
limit情况问题描述:使用线程池时,由于ThreadLocal与线程复用导致的“污染”,可能会导致多个查询共用同一个分页参数,从而影响分页结果。
解决方案:确保每次分页查询后紧跟着执行查询操作,或者使用PageHelper.clearPage()手动清理分页参数。
问题描述:分页查询失效,查询了全部数据。
具体问题:
PageHelper.startPage(1,0):当pageSize<=0时,不分页,也不会在SQL末尾拼接limit。reasonable:设置reasonable=true时,若用户传入页数大于总页数,会修改查询页数,查询最后一页数据;当禁用此参数或设为false,若用户传入页数大于总页数,则返回为空。解决方案:正确配置reasonable属性,确保分页参数正确,以及正确配置MyBatis拦截器插件。
问题描述:
PageHelper.startPage()被正确使用,必须在Mapper的查询方法之前调用,并且确保该查询方法会消费掉分页设置。解决方案:
以上是PageHelper的一些常见问题及其解决方案,希望对你有所帮助。
转载地址:http://njvfk.baihongyu.com/