MyBatis Generator报错:Result Maps collection already contains value for xxxMapper.BaseResultMap

x33g5p2x  于2021-10-29 转载在 其他  
字(1.1k)|赞(0)|评价(0)|浏览(310)

发生问题的环境

<!--mysbatis-->
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.5.7</version>
</dependency>
<!--generator-->
<dependency>
	<groupId>org.mybatis.generator</groupId>
	<artifactId>mybatis-generator-core</artifactId>
	<version>1.4.0</version>
</dependency>
<!--mysql-->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>8.0.27</version>
</dependency>
<!--log4j-->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

在pom.xml配置以上环境时,运行数据库逆向生成xml后,运行项目报错Result Maps collection already contains value for xxxMapper.BaseResultMap

问题原因

在生成的Mapper.xml文件中发现多个重复代码块:

并且,这几个BaseResultMap里面的内容还和数据库字段对不上!!!

解决方案

在mybatis官方文档中找到了解决的答案:

由于我的环境导入的是MySQL8.0的jar包,这就命中了官方所说中的Bug。

链接

所以,只需要在"generatorConfig.xml"中的jdbcConnectio标签中添加以下代码即可

<property name="nullCatalogMeansCurrent" value="true"/>

相关文章