【发布时间】:2021-12-08 14:54:02
【问题描述】:
我有一个非规范化数据库和一个包含多个类的域模型。例如
class BMW {
EngineConfiguration engineConfiguration;
ModelMetadata modelMetadata;
BodyConfiguration bodyConfiguration;
}
class CarsEntity{
String modelName;
Integer year...
//etc. all fields, in same class
}
我想为 EngineConfiguration、ModelMetadata 和 BodyConfiguration 编写 MapStruct 映射器,然后将它们全部整合到一个映射器中。示例
@Mapper(componentModel = "spring")
class EngineConfigurationMapper {
@Mapping(... specific fields mapping goes here)
EngineConfiguration mapToDomain(CarsEntity carsEntity);
}
@Mapper(componentModel = "spring", uses = {EngineConfigurationMapper.class , ...})
class BMWMapper {
BMW mapToDomain(CarsEntity carsEntity);
}
问题是我的映射器默认不工作,BMWMapper 没有对其他映射器的调用,我尝试过像expression="(engineConfigurationMapper.mapToDomain(this))" target = "engineConfiguration) 一样调用this 的表达式,但映射器不包含在实现中。
我怎样才能做到这一点?
P.S.:MapperConfig 也没用
【问题讨论】: