关于线上遇到一个问题记录~
业务有个导出的接口,复用的是page接口,理所当然的想着将page中的size参数调大点(1000条取一次,跟total作比较),结果发现明明导出的数据有500+条数量,可下载下来的数据仅有500条,怎么会有这么敏感的数字呢?于是接下来就开始去查看mybatis plus源码。
终于在PaginationInterceptor拦截器中发现有个limit参数
继续往下看,在intercept方法中:
真相了,尽管我们设置了size=1000,但其实在真正执行的时候,mybatis plus会把这个size重新赋值成500,因此我们手动设置是无效的,如果需要查询全量,就传小于0的值,或者批量进行查询,如每次取300条,直到 total <= current * size等操作。