如何解决 Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for X
这里有新鲜出炉的 Java 函数式编程, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这两天因为项目需要整合 springstruts2mybatis 三大框架, 但启动的时候总出现这个错误, 困扰我好久, 折腾了好久终于找到问题根源, 下面小编给大家分享下问题所在及解决办法, 一起看看吧
这两天因为项目需要整合 springstruts2mybatis 三大框架, 但启动的时候总出现这个错误, 困扰我好久, 在网上找到的答案都不是我想要的, 今天终于知道原因了
user-mapper.xml 如下:
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.bmdc.dj.user.dao.UserDao">
- <resultMap type="user" id="userResult">
- <id property="user_id" column="USER_ID" />
- <result property="login_name" column="LOGIN_NAME" />
- <result property="real_name" column="REAL_NAME" />
- <result property="password" column="PASSWORD" />
- </resultMap>
- <insert id="add" parameterType="user">
- insert into users (user_id, login_name, real_name, password) values(#{user_id},
- #{login_name}, #{real_name}, #{password})
- </insert>
- </mapper>
其中, namespace 是接口路径
Mybatis.xml 如下:
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
- <!-- 别名 -->
- <typeAliases>
- <typeAlias type="com.bmdc.dj.user.domain.User" alias="user" />
- </typeAliases>
- <mappers>
- <mapper resource="com/bmdc/dj/user/dao/user-mapper.xml" />
- </mappers>
- </configuration>
其他配置文件都正确, 我就不写了这样就会出现 Java.lang.IllegalArgumentException: Result Maps collection already contains value for XXX 这个错误
解决办法是: 删除 Mybatis.xml 中的 < mappers > 标签所有内容因为如果 user-mapper.xml 与 namespace 的接口在同一路径下, 就不需要在 mybaits.xml 中再进行配置了
修改后的 Mybatis.xml 如下:
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
- <!-- 别名 -->
- <typeAliases>
- <typeAlias type="com.bmdc.dj.user.domain.User" alias="user" />
- </typeAliases>
- </configuration>
以上所述是小编给大家介绍的如何解决 Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for X, 希望对大家有所帮助, 如果大家有任何疑问请给我留言, 小编会及时回复大家的在此也非常感谢大家对 PHPERZ 网站的支持!
来源: http://www.phperz.com/article/18/0208/359052.html