mybatis mapper互相引用resultMap启动出错,
问题:
Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for kulink.cvscloud.core.mapper.OrderSundryMapper.BaseResultMap
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:888) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:640) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:344) ~[mybatis-3.4.5.jar:3.4.5]
... 73 common frames omitted
原因:
因为mybatis扫描加载的时候,是按顺序加载的A-Z,因为mapperA中引用mapperB中的ResultMap
但是启动加载的时候mapperB加载在mapperA之后,所以造成mapperB.ResultMap找不到的问题。
解决方法:升级新版本,已经解决这个问题了,
或者在引用mapper.xml中把resultMap直接复制过来