MybatisPlus的分页插件会自动优化LeftJoin语句

2023-07-25 14:56:05 浏览数 (1)

MybatisPlus的分页插件会自动优化LeftJoin语句,

会导致查询的sql总数和实际数据不一致

官网上说明,当LeftJoin的表没有参与Where查询时,会自动移除。

代码语言:javascript复制
解决方案: 配置 paginationInnerInterceptor.setOptimizeJoin(false);
为false即可不消除leftjoin

代码语言:javascript复制
 @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.getDbType(dbType));
        // 关闭生成 countSql 优化掉 join
        paginationInnerInterceptor.setOptimizeJoin(false);
        interceptor.addInnerInterceptor(paginationInnerInterceptor);
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }

0 人点赞