Mapstruct-从多个集合映射到单个集合

时间:2018-10-19 05:15:02

标签: java mapstruct

使用MapStruct,我的源对象中有两个集合,其中包含略有不同的对象。我想将这两个集合的对象映射为通用类型,然后将它们全部插入单个集合中。类似于以下内容:

List<UserNumber> listsToDtoList(List<PhoneNumber> phoneNumbers, List<FaxNumber> faxNumbers);

UserNumber phoneToPhoneDto(PhoneNumber phone);
UserNumber faxToPhoneDto(FaxNumber fax);

使用MapStruct进行此操作最简单的方法是什么?

1 个答案:

答案 0 :(得分:3)

因此,我将根据自己的SourceObject进行映射(不写List<UserNumber> listsToDtoList(List<PhoneNumber> phoneNumbers, List<FaxNumber> faxNumbers);

有些事情是这样的:

@Mapping( target = "userNumbers", source = "phoneNumbers" )
Target map( Source source );

@AfterMapping // will be applied in the final part of the previous method
default void map ( Source source, @MappingTarget Target target ) {
 target.getUserNumbers().addAll(source.getFaxNumbers());
}