背景
在运行SpringBoot项目时,启动过程中出现异常,异常提示为:
1 | Result Maps collection already contains value for...BaseResultMap |
排查
从异常日志看出,问题出在Mapper.xml文件里面,提示有BaseResultMap
这个结果集有多个。
那么到对应的mapper文件中确认一下,发现的确有重复定义,而且基本上整个文件都重复写了两遍。
原因
一般在开发过程中,先建立了数据库表之后,通过MyBatis Generator进行逆向自动生成mapper.xml, DO对象定义以及Dao文件。本次使用的是better-mybatis-generator这个插件。
但要注意的是,当你对某个表格重复生成了两次,那么生成的文件不会覆盖之前的文件,而是在之前的文件后面追加了一遍。
解决办法
可以通过删除重复部分解决。
但由于生成的文件内容比较长,我采取了整个删掉重新再次生成一遍的方式解决。