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

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


public class classA{

    List<ObjectA> list;

}


public class classB{

    List<ObjectB> list;

}


public class classC{

    List<ObjectC> list;

}

我需要将两个列表从 classC 和 classB 映射到 classA 中的列表(从 objectB 和 objectC 到 objectA 的映射已经完成)。我尝试了以下内容:


@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

这给了我编译错误。有人可以帮我映射这个列表吗?我听说过一个名为 exception 的注释参数,但无法用它解决我的问题。


慕码人8056858
浏览 134回答 1
1回答

慕神8447489

这不能通过 mapstruct 来完成。合并 2 个列表总是涉及业务逻辑。所以需要b自己写方法实现。我最近在 MapStruct 网页上写了一个常见问题解答项目。这适用于预先存在的列表@MappingTarget。但类似的推理适用于将 2 个源列表合并到一个目标中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java