在 Mapper 发现重复的 bean 一般都可以通过检索解决,但是有些比较奇怪的错误导致另外的错误就少见了。
比如我写 jdbcType 写错了
很明显 mybatis 没有 Date 的类型,这个错误应该是抛出
No enum constant org.apache.ibatis.type.JdbcType.Date
但是,Mybatis 会抛出 Result Maps collection already contains value,是因为 Mybatis 在第一次没有完成一个 Mapper 的注册时候,会重复去注册一个 Mapper
我写错了 jdbcType 导致该 Mapper 注册不成功,抛出错误之后,Mybatis 再次扫描
不断地扫描没注册的类,导致重复地往自己的容器注册这个重复的类,导致抛出大量的 Result Maps collection already contains value,而 Date 的报错只有一次,所以大量的错误导致 Date 错误在日志,控制台等地方被忽略,让使用者直接定位错误,以为我写了重复的类,搞得我浪费大量时间纠结究竟哪里重复。