天天看点

Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for XXX

<?xml version="1.0" encoding="UTF-8"?> insert into users (user_id, login_name, real_name, password) values(#{user_id}, #{login_name}, #{real_name}, #{password})

其中,namespace是接口路径。

Mybatis.xml如下:
<?xml version="1.0" encoding="UTF-8" ?>
           
<!-- 别名 -->
<typeAliases>
    <typeAlias type="com.bmdc.dj.user.domain.User" alias="user"/>
</typeAliases>
 <mappers>    
    <mapper resource="com/bmdc/dj/user/dao/user-mapper.xml" />    
</mappers>
           

其他配置文件都正确,我就不写了。这样就会出现 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" ?>
           
<!-- 别名 -->
<typeAliases>
    <typeAlias type="com.bmdc.dj.user.domain.User" alias="user"/>
</typeAliases>