记录mybatis plus分页溢出返回第一页

813 阅读1分钟

本周,做项目的时候遇到了一个问题,使用的mybatis plus进行的分页,传入的页数如果大于实际总页数,返回的列表是第一页的数据(我们想要返回的是空列表),最后发现是mybatis plus的配置出现的问题。

原来的配置代码如下:

public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        PaginationInnerInterceptor innerInterceptor=new PaginationInnerInterceptor();
        innerInterceptor.setDbType(DbType.MYSQL);
        //问题就是出现在了这里 设置溢出总页数后是否进行处理
        innerInterceptor.setOverflow(true);
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        interceptor.addInnerInterceptor(innerInterceptor);
        return interceptor;
    }

    @Bean
    public ConfigurationCustomizer configurationCustomizer(){
        return mybatisConfiguration -> mybatisConfiguration.setUseGeneratedShortKey(false);
    }
}

把配置改为innerInterceptor.setOverflow(false),问题解决。 后来查询文档PaginationInnerInterceptor有如下几个常用的配置,记录一下:

属性名类型默认值描述
overflowbooleanfalse溢出的页数是否进行默认处理(默认不处理)
maxLimitbooleanfalse单页分页条数限制(默认无限制)
dbTypeDbType数据库类型(根据类型获取应使用的分页方言

建议单一数据库类型的均设置 dbType