mybatis generator自動生成代碼報The error occurred while processing mapper_resultMap[BaseResultMap]錯誤的解決方法


今天在用mybatis自動生成代碼之后遇到了一個錯誤:

?
 
org.apache.ibatis.exceptions.PersistenceException :
### Error building SqlSession.
### The error may exist in com/erp/webservice/mapper/UsersMapper.xml
### The error occurred while processing mapper_resultMap[BaseResultMap]
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.RuntimeException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException : Result Maps collection already contains value for com.erp.webservice.inter.UsersMapper.BaseResultMap
      at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java: 23 )
      at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java: 51 )
      at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java: 35 )
      at com.erp.webservice.test.Test.<clinit>( Test.java: 22 )
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.RuntimeException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException : Result Maps collection already contains value for com.erp.webservice.inter.UsersMapper.BaseResultMap
      at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java: 107 )
      at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java: 89 )
      at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java: 49 )
      ... 2 more
Caused by: java.lang.RuntimeException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException : Result Maps collection already contains value for com.erp.webservice.inter.UsersMapper.BaseResultMap
      at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java: 113 )
      at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java: 88 )
      at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java: 325 )
      at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java: 105 )
      ... 4 more
Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.erp.webservice.inter.UsersMapper.BaseResultMap
      at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java: 710 )
      at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java: 682 )
      at org.apache.ibatis.session.Configuration.addResultMap(Configuration.java: 473 )
      at org.apache.ibatis.builder.MapperBuilderAssistant.addResultMap(MapperBuilderAssistant.java: 204 )
      at org.apache.ibatis.builder.ResultMapResolver.resolve(ResultMapResolver.java: 44 )
      at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java: 277 )
      at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java: 244 )
      at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java: 236 )
      at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java: 109 )
      ... 7 more
Exception in thread "main" java.lang.NullPointerException
      at com.erp.webservice.test.Test.main( Test.java: 29 )

后來發現是我運行了多次自動生成代碼的程序,導致了com/erp/webservice/mapper/UsersMapper.xml的內容多出來很多,原來自動生成代碼的時候生成的XML代碼不是覆蓋原來的,而是附加的XML的尾部的。

第一次運行自動生成代碼程序:

mapper1

 

 

 

 

 

 

第二次運行自動生成代碼程序:

mapper2

 

 

 

 

 

 

看看,XML文件明顯大了很多,只要刪掉原來的XML然后重新運行自動生成代碼的程序即可。

或者去工作空間吧生成的東西都刪除一邊重新生成


免責聲明!

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



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