springboot报错Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for TransformRecordMapper.BaseResultMap解决方案
问题背景
在使用mybatis-generator自动生成的映射xml文件,启动时报错:
Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'class path resource [mapper/mysql/TransformRecordMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'class path resource [mapper/mysql/TransformRecordMapper.xml]'. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for TransformRecordMapper.BaseResultMap
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
解决方案
- 因为我更改了数据库的字段,重新生成了xml文件,但是之前的xml文件没有删除,报错Result Maps collection already contains value BaseResultMap已经包含BaseResultMap,我以为默认是覆盖的,结果不是覆盖的方式,所以需要删除之前的xml文件,全部重新生成,解决问题
- 删除这样的xml文件
- 重新生成xml
心得
- 我好像遇到几次这样的问题了,这次记下来别忘了
作为程序员第 61 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …
Lyric:千山万水
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/110814.html