過去2日間で、プロジェクトはSpring、Struts2、MyBatisの3つの主要なフレームワークを統合する必要がありますが、このエラーは常に起動すると常に発生し、長い間悩まされてきました。私がオンラインで見つけた答えは私が望むものではありません。今日、私はついにその理由を知っています。
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" namespace = "com.bmdc.dj.user.dao.userdao"> <resultmap type = "user" id = "ueserresult"> <id property = "user_id" column = "user_id"/> <resultプロパティ= "login_name" column = "login_name"/> <result property = "columnam列= "password"/> </resultmap> <id = "add" parametertype = "user"> inserting inguter(user_id、login_name、real_name、password)values(#{user_id}、#{login_name}、#{real_name}、#{password})ここで、名前空間はインターフェイスパスです。
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" type = "com.bmdc.dj.user.domain.user" alias = "user"/> </typealiase> <mapper resource = "com/bmdc/dj/user/dao/user-mapper.xml"/> </mappers> </configuration>
他の構成ファイルは正しいので、それらを書きません。これにより、エラーが発生しますjava.lang.illegalargumentexception:resultマップコレクションには既にxxxの値が含まれています。
解決策は、mybatis.xmlで<mappers>タグのすべてのコンテンツを削除します。 user-mapper.xmlとnamespaceの間のインターフェイスが同じパスにある場合、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" type = "com.bmdc.dj.user.domain.user" alias = "user"/> </typealiase> </configuration>
上記は、MyBatisの解決方法に関する編集者の紹介です-Java.lang.illegalargumentexception:結果マップコレクションにはXの値が既に含まれています。すべての人に役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!