最近开发的时候用到了generatorSqlmapCustom逆向工程来生成实体类pojo和映射器mapper,但是运行时会报错The alias ‘xxxx’ is already mapped to the value xxxxxx,大概的意思就是说这个别名已经映射到某个值,也就是重复映射了。
一开始我只是把这个重复的类名修改,但是后面实体类越来越多,改的太麻烦,而且很容易改错导致mapper映射出问题,所以百度了半天,解决问题的也很少,最后在https://stackoverflow.com/questions/55902991/org-apache-ibatis-type-typeexception-the-alias-criterion-is-already-mapped-to这里找到了原因。
由于我的工程依赖的基本都是最新的jar版本,但是 从mybatis-spring 2.0.1开始存在匿名类时,无法注册类型别名。具体什么意思不是很清楚,mybatis-spring 2.0.1中的错误会导致存在多个sql时,别名映射出错。所以把mybatis-spring 换成2.0.0或者2.0.2版本就解决了问题。