代码之家  ›  专栏  ›  技术社区  ›  LJW

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

  •  1
  • LJW  · 技术社区  · 6 年前

    List<UserNumber> listsToDtoList(List<PhoneNumber> phoneNumbers, List<FaxNumber> faxNumbers);
    
    UserNumber phoneToPhoneDto(PhoneNumber phone);
    UserNumber faxToPhoneDto(FaxNumber fax);
    

    使用MapStruct最简单的方法是什么?

    1 回复  |  直到 6 年前
        1
  •  5
  •   Sjaak    6 年前

    所以我会用我的 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());
    }