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);