MyBatis报错:Mapped Statements collection already contains value for XXX 的可能原因
一、Mapped Statements collection already contains value for XXX 的可能原因
今天在MyBatis遇到报错:Mapped Statements collection already contains value for auditExam,原因是因为auditExam写重复了,所以顺便把查到的可能原因记录一下。
1、Mapper中存在了重复的id(同一个Mapper.xml 文件中重复出现了两个id 为XXX的方法)
那么就需要好好检查程序报错的地方,调用对应的mapper文件里的方法id了,看看是否id命名一样
2、有可能是parameterType和resultType,参数类型错误
仔细检查方法中的parameterType和resultType,查看相应的参数类型是否有错,或者有空的忘记写了
3、有可能你的sqlSessionFactory中配置了多个xml的地址。
这时就需要仔细查看你的配置文件,是否将xml地址配重复了,将多余的删除掉。
4、若你项目中使用了2个xml文件去对应了一个.java文件,引用了同一个方法,而方法id相同就可能会出 现,比如:userDao.xml,userExlDao.xml,有多个mapper.xml, 执行sql时是随机找了一个xml来绑定ResultMap,就可能会出现此问题,那么这个时候就需要指定xml文件的加载顺序了。
5、多数据源的情况下,同一mapper文件被扫描了多次,导致异常。
分类:
MyBatis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律