MyBatis報錯:Mapped Statements collection already contains value for XXX 的可能原因


一、Mapped Statements collection already contains value for XXX 的可能原因

  今天在MyBatis遇到報錯:Mapped Statements collection already contains value for auditExam,原因是因為auditExam寫重復了,所以順便把查到的可能原因記錄一下。

1、Mapper中存在了重復的id(同一個Mapper.xml 文件中重復出現了兩個id 為XXX的方法)

  那么就需要好好檢查程序報錯的地方,調用對應的mapper文件里的方法id了,看看是否id命名一樣

2、有可能是parameterType和resultType,參數類型錯誤

  仔細檢查方法中的parameterType和resultType,查看相應的參數類型是否有錯,或者有空的忘記寫了

3、有可能你的sqlSessionFactory中配置了多個xml的地址。

  這時就需要仔細查看你的配置文件,是否將xml地址配重復了,將多余的刪除掉。

4、若你項目中使用了2個xml文件去對應了一個.java文件,引用了同一個方法,而方法id相同就可能會出 現,比如:userDao.xml,userExlDao.xml,有多個mapper.xml, 執行sql時是隨機找了一個xml來綁定ResultMap,就可能會出現此問題,那么這個時候就需要指定xml文件的加載順序了。

5、多數據源的情況下,同一mapper文件被掃描了多次,導致異常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM