За последние два дня проект должен интегрировать три основные рамки Spring, Struts2 и Mybatis, но эта ошибка всегда возникает, когда она запускается, что в течение долгого времени беспокоило меня. Ответы, которые я нашел в Интернете, не то, что я хочу. Сегодня я наконец знаю причину.
Пользователь 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.org/dtd/mybatis-3-mapper.dtd " 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 ower (user_id, login_name, real_name, пароль) значения ( #{user_id}, #{login_name}, #{real_name}, #{passwer}) </insert> </mapper> mapper> mapper> </insert>Где пространство имен - это путь интерфейса.
Mybatis.xml выглядит следующим образом:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Конфигурация doctype public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <ponivination> <! Type = "com.bmdc.dj.user.domain.user" alias = "user"/> </typealiases> <mapper resource = "com/bmdc/dj/user/dao/user-mapper.xml"/> </mappers> </configuration>
Другие файлы конфигурации верны, поэтому я не буду их написать. Это приведет к ошибке java.lang.illegalargumentException: Коллекция карт результатов уже содержит значение для XXX.
Решение: удалить все содержимое тега <mappers> в mybatis.xml. Потому что, если интерфейс между пользователем-mapper.xml и пространством имен находится в одном пути, нет необходимости настраивать его на mybaits.xml.
Модифицированный mybatis.xml выглядит следующим образом:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Конфигурация doctype public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <ponivination> <! Type = "com.bmdc.dj.user.domain.user" alias = "user"/> </typealiases> </configuration>
Выше приведено введение редактора о том, как решить Mybatis-Java.lang.illegalargumentException: Коллекция карт результатов уже содержит ценность для X. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!