当前位置: 首页 > 知识库问答 >
问题:

MapStruct-将具有不同对象类型的两个列表映射到具有另一对象类型的第三个列表

单琛
2023-03-14

尝试使用mapstruct将两个列表映射到另一个列表时遇到问题。结构如下:

public class classA{
    List<ObjectA> list;
}

public class classB{
    List<ObjectB> list;
}

public class classC{
    List<ObjectC> list;
}

我需要将来自类C和类B的列表映射到类A中的列表(从对象B和对象C到对象A的映射已经完成)。我尝试了以下方法:

@Mappings({
    @Mapping(target="list", source="obj1.list"),
    @Mapping(target="list", source="obj2.list")
})
classA map(classB obj1, classC obj2);

//the other mappers from objectC and objectB to objectA

这给我带来了编译错误。有人能帮我映射这些列表吗?我听说过一个名为异常的注释参数,但无法解决我的问题。

谢谢

共有1个答案

景国兴
2023-03-14

这不能由mapstruct完成。合并2个列表时总是涉及业务逻辑。因此,您需要b来编写自己的方法实现。我最近在MapStruct网页上写了一个常见问题。这适用于预先存在的列表@MappingTarget。但类似的推理适用于将2个源列表合并为一个目标。http://mapstruct.org/faq/#why-mapstruct不可能从更新mappingtarget方法生成可迭代流和映射类型的实现吗

 类似资料: