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

2023-08-23 13:46:41 浏览数 (1)

MybatisPlus的分页插件会自动优化LeftJoin语句,官网上说明,当LeftJoin的表没有参与Where查询时,会自动移除。 会导致查询的sql总数和实际数据不一致

解决方案: 配置

代码语言: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 人点赞