我有一个Spring Boot项目,我正在使用mapstruct来映射2个对象。我有一种结构,这是第一个对象:
ObjectA {
List<ObjectB> objectsB;
}
ObjectB {
String prId;
List<String> dtId;
}
---第二个对象:
ObjectC {
List<ObjectD> objectsD;
}
ObjectD {
ObjectE objectE;
List<ObjectE> objectsE;
}
ObjectE {
String nmId;
}现在使用mapstruct,我需要这样做:
@Mapper(componentModel = "spring")
public interface AppMapper {
@Mappings({
@Mapping(target = "objectC.objectsD.objectE.nmId", source = "objectA.objectsB.prId"),
@Mapping(target = "objectC.objectsD.objectsE.nmId", source = "objectA.objectsB.dtId")
})
ObjectC objectAToObjectC(ObjectA objectA);
}我该怎么做呢?任何反馈都将被删除!谢谢!
发布于 2020-11-13 14:07:08
您必须添加自定义映射方法,以将嵌套的objectB映射到objectD,并将任何字符串映射到ObjectE。
举个例子,这对你应该是有效的:
@Mapper
public interface AppMapper
{
@Mapping(source = "objectsB", target = "objectsD")
ObjectC objectAToObjectC(ObjectA objectA);
@Mapping(source = "prId", target = "objectE.nmId")
@Mapping(source = "dtId", target = "objectsE")
ObjectD objectBtoObjectD(ObjectB objectB);
}https://stackoverflow.com/questions/64807539
复制相似问题