尝试使用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
这给了我编译错误。 有人可以帮我映射此列表吗?我听到了有关称为异常的注释参数的信息,但无法解决它的问题。
谢谢!
答案 0 :(得分:0)
mapstruct无法完成。合并2个列表始终涉及业务逻辑。因此,您需要b编写自己的方法实现。我最近在MapStruct网页上写了一个FAQ项目。这适用于现有列表@MappingTarget。但是类似的推理也适用于将两个源列表合并到一个目标中。 http://mapstruct.org/faq/#why-is-it-not-possible-for-mapstruct-to-generate-implementations-for-iterable-stream-and-map-types-from-update-mappingtarget-methods