#java #mapstruct
#java #структура карты
Вопрос:
ПОЙО:
public class TestDto {
private List<String> idList;
private String name;
}
сущность:
public class Test {
private String id;
private String name;
}
Если TestDto
это idList
так 1, 2, 3
, name
abc
то как я могу получить 3 соответствующих Test
объекта с помощью MapStruct?
Ответ №1:
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);
}