在分页时动态表名失效,修改插件注册顺序即可解决
参考修改:
/**
* @author TXF
* @version 1.0
* @description: TODO
* @date 2021/8/11 16:46
*/
@Configuration
public class MybatisPlusConfig {
/**
* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//支持动态表单
DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();
HashMap<String, TableNameHandler> map = new HashMap<String, TableNameHandler>(2) {{
put("DynamicArcFile", (sql, tableName) -> myTableName.get());
}};
dynamicTableNameInnerInterceptor.setTableNameHandlerMap(map);
//如自果是不同类型的库,请不要指定DbType,其会动判断。
// interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.DM));
return interceptor;
}
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> configuration.setUseDeprecatedExecutor(false);
}
public static ThreadLocal<String> myTableName = new ThreadLocal<>();
}