pagehelper基于Threadlocal记录参数、生效于代理对象。且拦截生效于第一个sql语句。
场景一:直接接mapper查询,分页生效
PageHelper.startPage(1,5);
transferMapper.selectByPrimaryKey(38);
场景二:接子线程,分页失效
PageHelper.startPage(1,5);
new Thread(()->{
transferMapper.selectByPrimaryKey(38);
}).start();
场景三:存在条件,导致分页错乱,生效于demo查询。
建议:分页与查询写一起,避免跨逻辑
PageHelper.startPage(1,5);
if(flag){
testMapper.list(query);
}
demoMapper.list(query);

PageHelper 在直接使用和子线程中表现不同,直接调用 mapper 查询时分页有效,但在子线程中失效。当分页与查询逻辑分离时可能导致错乱。建议将分页与查询操作保持在同一逻辑块内以确保正确性。

2205

被折叠的 条评论
为什么被折叠?



