MybatisPlus 页数page过大数据溢出问题

最近在修改公司代码时前端报了个奇怪的bug,即某个分页接口明明数据量只有42条,但是使用page = 500  

size = 10 

的配置时仍然可以查出数据

如下图所示

可见 total 属性只有 42条数据,页数都到500了但是很夸张的还是查出来10条数据

查询后端代码后发现使用的是 MP 的分页插件

// 封装分页查询器对象
Page<CommodityEntity> iPage = Page.of(page, size);
Page<CommodityEntity> commodityEntityPage = commodityMapper.selectPage(iPage, wrapper);

可见代码逻辑处没有问题,一时是有点蒙的,排查中突然想起 MP 存在分页配置插件,于是乎找到

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
        paginationInnerInterceptor.setDbType(DbType.MYSQL);
        //  着重注意这一行
        paginationInnerInterceptor.setOverflow(true);
        interceptor.addInnerInterceptor(paginationInnerInterceptor);
        return interceptor;
    }

 这一行的作用就是在你的查询页数超出实际数据量时,会默认重置页数为 1 ,许多小伙伴可能之前并没有留意过这个配置

将这行注释掉后再请求测试

查不出溢出数据了!成功

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值