gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:25 25 4
gpt4 key购买 nike

我在尝试使用 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

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

谢谢!

最佳答案

这不能通过mapstruct 来完成。合并 2 个列表总是涉及业务逻辑。所以你需要b来编写你自己的方法实现。我最近在 MapStruct 网页上写了一个常见问题解答项目。这适用于预先存在的列表@MappingTarget。但类似的推理也适用于将 2 个源列表合并到一个目标中。 http://mapstruct.org/faq/#why-is-it-not-possible-for-mapstruct-to-generate-implementations-for-iterable-stream-and-map-types-from-update-mappingtarget-methods

关于java - MapStruct - 将具有不同对象类型的两个列表映射到具有另一种对象类型的第三个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57150464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com