MybatisPlus的分页插件会自动优化LeftJoin语句
warning:
这篇文章距离上次修改已过524天,其中的内容可能已经有所变动。
MybatisPlus的分页插件会自动优化LeftJoin语句,官网上说明,当LeftJoin的表没有参与Where查询时,会自动移除。
会导致查询的sql总数和实际数据不一致
解决方案: 配置
paginationInnerInterceptor.setOptimizeJoin(false);
为false即可不消除leftjoin
@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;
}