<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
项目中引入动态表名 SQL 解析器后不会调用重写的dynamicTableName()方法,因此,无法实现表名的替换,注册代码如下:
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
DynamicTableNameParser dynamicTableNameParser = new DynamicTableNameParser();
dynamicTableNameParser.setTableNameHandlerMap(new HashMap<String, ITableNameHandler>(2) {{
put("mp_dt_voice", (metaObject, sql, tableName) -> {
return "voice_1";
});
}});
paginationInterceptor.setSqlParserList(Collections.singletonList(dynamicTableNameParser));
return paginationInterceptor;
}
实体类配置正确,同样的代码移动到官方demo中,能够运行。因此会有环境冲突吗?Debug能够发现该Bean被调用,但是重写的方法没有被调用。
所有外部库如下:
org.springframework.boot:spring-boot-starter-web:2.2.4.RELEASE
org.springframework.boot:spring-boot-starter-test:2.2.4.RELEASE
com.alibaba:druid-spring-boot-starter:1.1.10
mysql:mysql-connector-java:8.0.13
org.projectlombok:lombok:1.16.22
org.springframework.boot:spring-boot-starter-jdbc:2.2.4.RELEASE
org.springframework.boot:spring-boot-starter-aop:2.2.4.RELEASE
com.baomidou:mybatis-plus-boot-starter:3.3.1
junit:junit:4.12
表名没有被替换,重写的方法也没有被调用。