Modelmapper с комбинированными свойствами

Учитывая следующее к моделям

class Project {
  String groupId;
  String artifactId;
  String version;
}

class ProjectWithId {
  String id;
  String groupId;
  String artifactId;
  String version;
}

Как правильно использовать ModelMapper для объединения значений groupId, artifactId и version? Например, есть ли способ избежать следующего:

ProjectWithId projectWithId = modelMapper.map(project, ProjectWithId.class);
projectWithId.setId(project.getGroupId() + ":" + project.getArtifactId() + ":" + project.getVersion());

1 ответ

Вам нужно создать пользовательский конвертер, чтобы объединить 3 свойства: groupId,artifactId и version.

Например,

Converter<String, String> converter = new Converter<String, String>() {
  public String convert(MappingContext<String, String> context) {
    Project project = (Project) context.getParent().getSource();
    return project.groupId + project.artifactId+ project.version;
  }
};

Используйте этот конвертер во время картирования

modelMapper.addConverter(converter);
Другие вопросы по тегам