报错,Result Maps collection already contains value for

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了报错,Result Maps collection already contains value for相关的知识,希望对你有一定的参考价值。

参考技术A 环境: spring boot + mybatis
报错: Result Maps collection already contains value for xxx

将mapper.xml删除,报错找不到mapper,证明这个mapper.xml是生效的。将mapper.xml的内容全部删除,写了一个最简单的 <select> ,发现还是报错,这说明跟mapper.xml本身是没有关系的。

折腾了2个小时,终于搞明白了是怎么回事。
原来在spring boot的application.properties中,配置了

这样相当于mapper的配置被配置了两遍,把mybatis-config.xml中的mappers部分删除,单测终于跑通。
spring boot的这个配置省的每次都要把xml写到mybatis-config.xml里边了

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

发生问题的环境

<!--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"/>

以上是关于报错,Result Maps collection already contains value for的主要内容,如果未能解决你的问题,请参考以下文章

mybatis 报错Result Maps collection does not contain value for java.lang.Integer

Result Maps collection already contains value for

解决mybatis报错Result Maps collection does not contain value for java.lang.Integer

Result Maps collection already contains value for

错误日志Result Maps collection already contains value for XXXResultMap

Result Maps collection already contains value for 问题总结