MapStruct:如何根据数组字段将POJO转换为多个实体



POJO:

public class TestDto {
private List<String> idList;
private String name;
}

实体:

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

如果TestDtoidList1, 2, 3nameabc,那么如何通过MapStruct得到3个对应的Test实体?

MapStruct无法为您执行此映射。然而,您可以使用多个源属性来实现这样的功能:

例如

@Mapper
public interface TestMapper {

default List<Test> map(TestDto dto) {
if (dto == null || dto.getIdList() == null) {
return null;
}
List<String> idList = dto.getIdList();
List<Test> tests = new ArrayList<>(idList.size());
for (String id: idList) {
tests.add(map(id, dto);
}
return tests;
}
Test map(String id, TestDto dto);
}

最新更新