ModelMapper не может конвертировать из простого DTO в объект со сложным полем - PullRequest
0 голосов
/ 12 октября 2018

Есть ли способ преобразования из простого DTO, например:

class DTO {
   private Set<String> prop;
}

, в сущности, такие как:

class Entity {
   private Nested nested;
}

class Nested {
   private Set<String> prop;
}

При попытке настройки по умолчанию вложенное поле остается пустым.
Что должно быть настроено?

1 Ответ

0 голосов
/ 13 октября 2018

Вы можете использовать функциональность глубокого отображения

ModelMapper mapper = new ModelMapper();
mapper.createTypeMap(DTO.class, Entity.class)
            .addMappings(mapping -> mapping.<Set<String>>map(DTO::getProp, (dest, v) -> dest.getNested().setProp(v)));

mapper.createTypeMap(Entity.class, DTO.class)
            .addMappings(mapping -> mapping.map(src -> src.getNested().getProp(), DTO::setProp));
...