Mybatis PageHelper自动加上limit ?

现象:
偶然遇到了这个问题,同一个查询结果一会是2个(预期),一会是1个(刷新/重启应用就又变成2个)
定位:
查看日志,发现了问题:结果为1个时查询SQL自动加上了Limit 1
原理及解决:

1. 设置了PageHelper.startPage(pageStart, pageSize)
2. 假设接下来没有执行后续的查询(抛出或者其它原因)
3. 此时PageHelper的分页设置绑定在该线程的ThreadLocal里
4. 新的SQL查询恰好使用了该线程,则自动使用分页查询(limit就莫名其妙的出现了)
5. 在高风险的地方释放分页设置PageHelper.clearPage();

 

posted @ 2020-11-07 20:18  一沙世界  阅读(3821)  评论(0编辑  收藏  举报