当前位置: 首页 > 知识库问答 >
问题:

MapStruct:从对象映射到复杂对象列表

齐胜涝
2023-03-14

假设我有以下课程:

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;
}
@Mapper
public interface MyMapper {

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

共有1个答案

边永贞
2023-03-14

尝试这个(未经测试但应该正常工作)

当映射列表时,您应该为class元素和列表创建一个映射,以映射列表的所有元素)

java prettyprint-override">@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);
}
 类似资料: