最近使用mybatis代码生成器,发现有的时候会报下面这个错误:
Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for life.majiang.community.mapper.CommentMapper.BaseResultMap
这个很烦人,之前的解决方案一直都是删除target目录下的文件,然后重启idea,这样有的时候能好,有点时候不好,今天又遇到这个问题,发现之前的操作不行了,后来在网站看到有人说,可能是因为在相应的mapper文件里,出现了两个BaseResultMap,我到相应的文件里搜了一下,确实是这个问题,把文件重新删除以后,再重新生成就没这个问题了,但是这个问题只是临时解决了,这样的话,每次出现这个问题,我都要删除文件,然后重新生成,这也太麻烦了,
后来我在这篇帖子上看到了:参考帖子
这篇帖子上是自己写一个插件。
后来我又看到了另外一篇帖子参考帖子
mybatis-generator官方已经将此问题解决了。
看如下ISSUE
对应的修改如下
https://github.com/mybatis/generator/pull/311/commits/c6466816baf96e340bd72bfeac34d323a6a31b57
最关键的地方就在于
在generatorConfig.xml里面配置一个
<plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
在重新生成就没有这个问题了