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;
}