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);