当前使用版本(必填,否则不予处理)
3.2.0
该问题是如何引起的?(确定最新版也有问题再提!!!)
@Tablename(autoresultMap = true)会生成什么名字的resultmap呢? 目前在DTO类上加了该注解,spring boot启动报错,获取resultmap时发现没有自动生成(已debug断点查看确实没有生成),相关文档也没有说自动生成什么id的resultmap
重现步骤(如果有就写完整)
mapper.xml里找不到该mapper
报错信息
Comment From: miemieYaho
该resultmap不对外开放也不建议外部使用
Comment From: heihei180
怎么会跑到 mapper.xml 中呢 ? 是放在内存的:
大概就是 : com.github.mybatis.UserMapper.mybatis-plus_user; 大概是这样、
代码再这里 : com.baomidou.mybatisplus.core.metadata.TableInfo#initResultMapIfNeed
/**
* 自动构建 resultMap 并注入(如果条件符合的话)
*/
void initResultMapIfNeed() {
if (autoInitResultMap && null == resultMap) {
// 这个id 是 resuttMap 的 id、
String id = currentNamespace + DOT + MYBATIS_PLUS + UNDERSCORE + entityType.getSimpleName();
List<ResultMapping> resultMappings = new ArrayList<>();
if (havePK()) {
ResultMapping idMapping = new ResultMapping.Builder(configuration, keyProperty, keyColumn, keyType)
.flags(Collections.singletonList(ResultFlag.ID)).build();
resultMappings.add(idMapping);
}
if (CollectionUtils.isNotEmpty(fieldList)) {
fieldList.forEach(i -> resultMappings.add(i.getResultMapping(configuration)));
}
ResultMap resultMap = new ResultMap.Builder(configuration, id, entityType, resultMappings).build();
configuration.addResultMap(resultMap);
this.resultMap = id;
}
}