亲宝软件园·资讯

展开

Mybatis-plus的selectPage()分页查询不生效问题解决

风卷残云_迟来大师 人气:0

背景:

项目需要从mybits切换到mubits-plus,但是我在进行分页查询的时候,发现一直不生效

问题原因:

添加监听器,配置如下:

@Configuration
@MapperScan("com.baomidou.mybatisplus.samples.deluxe.mapper")
public class MybatisPlusConfig {
 
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
 
    /**
     * 自定义 SqlInjector
     * 里面包含自定义的全局方法
     */
    @Bean
    public MyLogicSqlInjector myLogicSqlInjector() {
        return new MyLogicSqlInjector();
    }
}

问题定位过程:

如果不感兴趣着,可以在上面复制答案,直接操作就行

debug看看啥原因:

入参:

debug看没有问题

结果:

两条数据同时没有总数,不符合要求

看日志:

没有拼接分页查询的动作

那么什么原因的

1.查看官网文档

网管地址:MyBatis-Plus

官网有些水,没看到具体信息

2.查看案例

github地址

GitHub - baomidou/mybatis-plus-samples: MyBatis-Plus Samples

在案例中找到了错误原因:

需要配置监听器

 按照下面的方式添加就行

@Configuration
@MapperScan("com.baomidou.mybatisplus.samples.deluxe.mapper")
public class MybatisPlusConfig {
 
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
 
    /**
     * 自定义 SqlInjector
     * 里面包含自定义的全局方法
     */
    @Bean
    public MyLogicSqlInjector myLogicSqlInjector() {
        return new MyLogicSqlInjector();
    }
}

加载全部内容

相关教程
猜你喜欢
用户评论