今天在用mybatis自動生成代碼以後遇到了一個錯誤:html
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的尾部的。java
第一次運行自動生成代碼程序:web
第二次運行自動生成代碼程序:apache
看看,XML文件明顯大了不少,只要刪掉原來的XML而後從新運行自動生成代碼的程序便可。session
或者去工做空間吧生成的東西都刪除一邊從新生成mybatis