XML fragments parsed from previous mappers already contains value for XXX

XML fragments parsed from previous mappers already contains value for XXX

异常信息例子

Caused by: java.lang.IllegalArgumentException: XML fragments parsed from previous mappers already contains value for com.alioth.....
	at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:872)
	at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:844)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.sqlElement(XMLMapperBuilder.java:335)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.sqlElement(XMLMapperBuilder.java:326)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:117)
	... 129 common frames omitted

解决问题步骤

1、查看对应的Mapper文件中是否存在相同ID的SQL标签
2、查看同一包下,是否有多个xml配置了相同的namespace

问题原因

在mybatis中,相同的namespace下不允许sql标签的ID重复,如果重复,就会报题目中的异常。通常情况下,由于代码搬运(复制粘贴)会造成同一个mapper文件内出现两个ID相同的sql标签,或者两个mapper文件的namespace同时指向了同一个java bean。

注:极特殊情况下,由于编译器的问题,比如eclipse/idea未正确编译代码也有可能出现此问题,使用build重新编译即可。如果使用maven管理项目,可以重新clean install 解决。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我家住城北

知识无价,打赏随缘

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值