背景
搭建新环境时,升级了下mybatis-plus的版本到 3.5.2,结果发现原本的分页插件 PaginationInterceptor 已被剔除,从官网得知需使用 PaginationInnerInterceptor,在此记录一下。
代码
/**
* mybatis-plus 全局配置
*
* @author wrx
* @date 2022/7/19 10:52
*/
@Configuration
@MapperScan("com.tz4cloud.mapper")
public class MybatisPlusConfig {
/**
* 插件配置:1.阻止恶意或误操作的全表更新删除 2.分页插件
*
* @return MybatisPlusInterceptor
* @author wrx
* @date 2022/7/19 10:53
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//阻止恶意或误操作的全表更新删除
interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
//分页插件
PaginationInnerInterceptor pageInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
pageInterceptor.setMaxLimit(500L);
// 开启 count 的 join 优化,只针对部分 left join
pageInterceptor.setOptimizeJoin(true);
interceptor.addInnerInterceptor(pageInterceptor);
return interceptor;
}
}
有个奇怪的地方,新版本如果单独将 PaginationInnerInterceptor 作为@Bean配置,并不会起效果。