【问题标题】:MapStruct: mapping from object with a list of complex objectMapStruct:从对象映射到复杂对象列表
【发布时间】:2019-07-12 18:08:45
【问题描述】:

假设我有以下课程:

public class A {
private String id;
private List<B> related;
}

public class B {
private String id;
private String name;
}

public class ADTO {
private String id;
private List<BDTO> relations;
}

public class BDTO {
private String identificator;
private String relatedName;
}

如何创建一个给定 A 对象类型的映射器,该映射器返回一个包含所有信息的 ADTO 对象?我必须创建两个不同的映射器?只能在一个映射器中完成吗?我认为这将类似于以下内容,但我不知道如何映射列表中的属性:

@Mapper
public interface MyMapper {

    @Mappings({ @Mapping(source = "related", target = "relations") })
    ADTO mapperA(A obj);
}

提前致谢。

【问题讨论】:

    标签: spring mapstruct


    【解决方案1】:

    试试这个(未经测试,但应该可以正常工作)

    当你映射列表时,你应该为类元素和列表创建一个映射来映射列表的所有元素)

    @Mapper
    public interface MyMapper {
    
        @Mappings({ @Mapping(source = "related", target = "relations") })
        ADTO mapperA(A obj);
    
        @Mappings(
          { @Mapping(source = "id", target = "identificator") },
          { @Mapping(source = "name", target = "relatedName") })
        BDTO bDTOMapping(B b);
    
        List<BDTO> bDTOListMapping(List<B> bList);
    }
    

    【讨论】:

      猜你喜欢
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多