报错,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