ssm 关于mybatis启动报Result Maps collection already contains value for ...的问题总结
Result Maps collection already contains value for com.zhaike.mapping.ChapterMapper.BaseResultMap
Error creating bean with name 'courseController': Unsatisfied dependency expressed through field 'courseService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException
关于这个问题,网上解答很嘈杂,不同的人遇到的实际问题也不尽相同。今天启动项目时报了这个错,查了很长时间,下面就这个问题列举了一些可能出错的地方。
1、当同一个xml映射文件内存在两个相同的id(即两个sql语句的id相同)时会报此错
解决:查询sql语句的id值修改
2、在mybatis的配置文件mybatis.xml内使用了<mapper/>标签加载xxxMapper.xml的映射文件报错,因为如果xxxMapper.xml与namespace的接口在同一路径下,就不需要在mybaits.xml中再进行配置了。
解决:将mybatis文件中<mapper/>标签中的内容删除
3、parameterType中的问题。这里的类名如果找不到也会报这个错,比如你之前是将该类名写死在这里,之后由于重构将该类转移到其他包中,如果这里不修改也会报这个错
解决:检查。。
4、还是parameterType中的问题,这次是关于自定义类的,当你使用基本类型的时候,比如int、string等,千万不要写错,比如写成strnig,咋一看看不出来,结果该问题就很难找
解决:检查。。
5、resultType的值与resultMap的id值相同的话会报错,可能是冲突了
解决:修改resultMap的id属性,因为resultType的值即为bean类别名或者全路径名
6、这一点和上一点差不多,如果是自定义resultMap,如果返回类型写成resultType,也会报这个错(今天就载在这。)
解决:将返回类型改为resultMap,且不要出现第5点的问题
1 <resultMap type="com.zhaike.entity.Course" id="allCourses" extends="BaseResultMap">
2 <collection property="chapters" ofType="com.zhaike.entity.Chapter" select="selectchapters"
3 column="{courseId=id}">
4 <!--column把第一次查询的结果 到第二次查询中去 courseId和#{courseId}对应 -->
5 </collection>
6 </resultMap>
7 <!--自定义查询sql-->
8 <select id="selectAllCourse" resultType="allCourses">/* 自定义类型写出resultMap 而不可以是resultType*/
9 select * from course c;
10 </select>
11 <select id="selectchapters" resultMap="com.zhaike.mapping.ChapterMapper.BaseResultMap">
12 select * from chapter where courseId = #{courseId}
13 </select>
<resultMap type="com.zhaike.entity.Course" id="allCourses" extends="BaseResultMap">
<collection property="chapters" ofType="com.zhaike.entity.Chapter" select="selectchapters"
column="{courseId=id}">
<!--column把第一次查询的结果 到第二次查询中去 courseId和#{courseId}对应 -->
</collection>
</resultMap>
<!--自定义查询sql-->
<select id="selectAllCourse" resultType="allCourses">/* 自定义类型写出resultMap 而不可以是resultType*/
select * from course c;
</select>
<select id="selectchapters" resultMap="com.zhaike.mapping.ChapterMapper.BaseResultMap">
select * from chapter where courseId = #{courseId}
</select>
ssm 关于mybatis启动报Result Maps collection already contains value for ...的问题总结的更多相关文章
- mybatis(错误一) 项目启动时报“Result Maps collection already contains value forxxx”的解决方案
Result Maps collection already contains value for xyx.dsw.dao.mapper.admin.quotationwish.TempTestTab ...
- MyBatis错误:Result Maps collection already contains value for novel.storage.mapper.NovelMapper.BaseResultMap
今天在写项目的时候遇到一个问题如下: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ...
- Mybatis错误:Result Maps collection already contains value for ***
[转载]原文链接:https://blog.csdn.net/maoyuanming0806/article/details/77870345 使用mybatis时,服务器启动时出错 严重: Exce ...
- mybatis(错误) 项目启动时报“Result Maps collection already contains value forxxx”的解决方案
使用逆向工程生成代码时,一定要将原来的代码删除干净,如果覆盖的话,不是真正的覆盖,在原来的代码上增加重复的代码,导致出错
- idae父子项目Test执行报Result Maps collection already contains value for xxx
现象:同一个springmvc工程使用eclipse和idea用Tomcat启动都没问题,但是如果走单元测试使用到了@ContextConfiguration这个spring的上下文注解idea出问题 ...
- Mybatis错误:Result Maps collection already contains value for 。。。。
解决方法 原因:xml文件中存在重名对象,保持名称不要一样即可正常启动.因为我再次使用逆向工程生成mapper接口和xml文件时,忘了删除原来的xml文件,新生成的与旧的同时出现旧重复了. 那么我们在 ...
- mybatis 异常Result Maps collection does not contain value for java.lang.String
Result Maps collection does not contain value for java.lang.String 以上是我报的错. 只要报Result Maps collectio ...
- mybatis启动报错Result Maps collection already contains value forxxx
ssm搭建过程中启动tomcat,报错: Cause: java.lang.IllegalArgumentException: Result Maps collection already conta ...
- 使用mybatis报错【Result Maps collection already contains value for ...BaseResultMap】的解决方法
Result Maps collection already contains value for ...BaseResultMap ...... 这个问题,相信大家在使用mybatis的重新生成 d ...
随机推荐
- Docker的数据管理(下)——docke镜像的创建
Docker的数据管理(下)--docke镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于 dockerfile 创建 4.Dockerfile 镜像操作常用命令 5.dockerfi ...
- go基础——数值传递与值传递
package main import "fmt" /* 1.值类型:存储的是数值本身,数据传递给其他变量时传递的是数据的副本. int,float,string,bool,arr ...
- java-数据库操作(JDBC)
前言:JDBC用到的API和常用方法 DriverMannager类 加载驱动并创建与数据库的连接,通常使用Class类的静态方法forName()来实现加载驱动,使用getConnection(St ...
- Linux忘记Root密码怎么找回
进入1级别,单用户模式 ,修改root密码即可(运行级别不懂看这里) 具体操作如下: 1.开机时按enter键 2.进入GRUB界面 3.输入 e,在引导系统前编辑命令 4.选择第二行 kernel ...
- Feign实现动态URL
需求描述 动态URL的需求场景: 有一个异步服务S,它为其他业务(业务A,业务B...)提供异步服务接口,在这些异步接口中执行完指定逻辑之后需要回调相应业务方的接口. 这在诸如风控审核,支付回调等场景 ...
- SpringBoot自动配置的魔法
Spring自动配置 从@SpringBootApplication注解说起 SpringBoot会根据类路径下的类自动配置,省去了编写繁琐的xml配置文件.原本基于xml配置bean的方式编程基于J ...
- 微服务从代码到k8s部署应有尽有系列(二、网关)
我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中 ...
- 依赖于angular的table组件
组件实现了以下功能 1. 列宽可动态拖动 2. 列数据排序 3. 列过滤 4. 列位置自由调整 除了需要引入angular.js(我用的是1.4.6版本),还需要引用一个angular衍生出来的插件n ...
- Spring Data JPA应用之常规CRUD操作初体验
基于对于一个陌生的技术框架,先使用后研究其实现的原则(大部分本人如此,就如小朋友学习骑自行车不会先研究自行车是怎么动起来的而是先骑会了),对于Spring JPA先通过案例实践其怎么用吧. 用之前得明 ...
- 答疑记录:jmeter从返回的html中提取指定内容
返回的html(截取部分),要求从中提取:2022-02-22 13:46:15 <!-- 前面省略557行 --> <td>2022-02-22</td> < ...