Mapstruct - 从多个集合映射到单个集合
Mapstruct - mapping from multiple collections into a single collection
使用 MapStruct,我的源对象中有两个集合,其中包含略有不同的对象。我想将这两个集合的对象映射到一个通用类型,然后将它们全部插入到一个集合中。类似下面的内容:
List<UserNumber> listsToDtoList(List<PhoneNumber> phoneNumbers, List<FaxNumber> faxNumbers);
UserNumber phoneToPhoneDto(PhoneNumber phone);
UserNumber faxToPhoneDto(FaxNumber fax);
使用 MapStruct 执行此操作的最简单方法是什么?
所以我会从我的 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());
}
使用 MapStruct,我的源对象中有两个集合,其中包含略有不同的对象。我想将这两个集合的对象映射到一个通用类型,然后将它们全部插入到一个集合中。类似下面的内容:
List<UserNumber> listsToDtoList(List<PhoneNumber> phoneNumbers, List<FaxNumber> faxNumbers);
UserNumber phoneToPhoneDto(PhoneNumber phone);
UserNumber faxToPhoneDto(FaxNumber fax);
使用 MapStruct 执行此操作的最简单方法是什么?
所以我会从我的 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());
}