网站首页 > 博客文章 正文
场景
在使用PageHelper的过程中,出现了一个很奇怪的问题,假设在数据库中存放有30条Country记录,我们用下面的方法使用PageHelper进行分页查询,那么我们希望得到的page.size是10。
PageHelper.startPage(1, 10);
List<Country> list = countryMapper.selectAll();
PageInfo page = new PageInfo(list);
assertEquals(10, list.size());
一般情况下结果是如我们所愿的,但是当下面的代码放到SpringBoot中标明@PostConstruct的方法下后,查询结果就是30而不是10,让我们一起来看看其中的原因。
@Component
public class PageHelperProblem {
@Autowired
CountryMapper countryMapper;
@PostConstruct
public void init() {
PageHelper.startPage(1, 10);
List<Country> list = countryMapper.selectAll();
PageInfo page = new PageInfo(list);
assertEquals(10, list.size());
}
}
原因
debug之后发现,在执行完代码PageHelper.startPage(1, 10)之后,我们把pageSize和pageNum设置到ThreadLocal中去了,但是在执行下一行代码之前,理论上应该进入到PageInterceptor拦截器中给sql动态的加上limit条件。但是没有进去,原因在于Bean的PostConstruct执行的时候,Pagehelper的autoconfigure还没有初始化,故而拦截器还没有创建出来,所以导致的结果就是startPage只是把分页参数设置到了ThreadLocal中去了,但是却没有被拦截器拦截,所以导致了分页失败,没有达到预期的分页效果。
我是「翎野君」,感谢各位朋友的:点赞、收藏和评论,我们下期见。
猜你喜欢
- 2024-09-26 pageHelper-v4.2源码阅读-分页是怎么实现运行的?
- 2024-09-26 面试官:精通 Mybatis?请回答下这几个问题(二)
- 2024-09-26 Mybatis分页插件-PageHelper(mybatis分页插件的缺点)
- 2024-09-26 Mybatis面试题(mybatis面试题csdn)
- 2024-09-26 MyBatis源码分享篇---Plugin插件原理
- 2024-09-26 网易工程师推荐的开源神器,一键解决Mybatis分页问题
- 2024-09-26 PageHelper循环依赖的处理(循环依赖aop)
- 2024-09-26 Spring AOP 实现动态数据源(读写分离),底层原理是什么
- 2024-09-26 服务器端开发-经典面试题(服务器端测试面试题)
- 2024-09-26 PageHelper分页后,对list操作会导致分页无效
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)