0%

Mybatis 异常: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already

前几天遇到一个非常神奇的错误,Error parsing Mapper XML. Cause:
java.lang.IllegalArgumentException: Result Maps collection already, 搞了半天,也没搞明白, 而且时有时无,很是神奇,最终发现最终原因是因为…….懒!

错误描述

1
2
3
4
5
6
7
8
9
Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains
value for org.hc.jiankunking.system.member.dao.OrderLogMapper.BaseResultMap;
nestedexception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in file [E:\16年文
件\JAVAdemo\jiankunking\jiankunking-web\target\jiankunking-web-1.0-SNAPSHOT\WEB-INF\classes\spring\spring-mybatis.xml]: Invocation of init method
failed; nested exception is org.springframework.core.NestedIOException:
Failed to parse mapping resource: 'URL [jar:file:/E:/16年文件/JAVAdemo/jiankunking/jiankunking-web/target/jiankunking-web-1.0-SNAPSHOT/
WEB-INF/lib/jiankunking-system-1.0-SNAPSHOT.jar!/mapper/OrderLogMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error
parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for
org.hc.jiankunking.system.member.dao.OrderLogMapper.BaseResultMap

解决方式

因为Mybatis官方提供了逆向工程的模块, 所以平时开发几乎都用这个,可以省不少事, 但是
问题来了, 在开发过程中有可能遇到数据库变动的情况, 所以这时就不得不重新生成mapper
和pojo文件, 但是! 如果原先的文件不删除的话, 新生成的文件不会覆盖旧文件, 而是在旧
文件的结尾继续添加, 所以这也就是 Result Maps collection already 的原因了.

所以....这个懒还是不要偷的好, 重新生成文件前一定要把旧文件清理干净.

在这里给自己踩踩坑-_-!