当我尝试通过枚举将源中的字符串映射到目标中的整数时。ModelMapper失败。
来源
public class Request {
private String classification;
}
目的地
public class DTO {
private Integer classification;
}
字符串和整数之间的映射在枚举中定义
public enum Classification {
POWER(3, "Power"),
PERFORMANCE(4, "Performance"),
TASK(13, "Task");
private final Integer code;
private final String name;
ProblemClassification(final int code, final String name) {
this.code = code;
this.name = name;
}
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
public static Integer getCodeByName(String name) {
Optional<Classification> classification = Arrays.asList(Classification.values()).stream()
.filter(item -> item.getName().equalsIgnoreCase(name))
.findFirst();
return classification.isPresent() ? classification.get().getCode() : null;
}
}
您需要转换器:
ModelMapper modelMapper = new ModelMapper();
Converter<String, Integer> classificationConverter =
ctx -> ctx.getSource() == null ? null : Classification.getCodeByName(ctx.getSource());
modelMapper.typeMap(Request.class, DTO.class)
.addMappings(mapper -> mapper.using(classificationConverter).map(Request::getClassification, DTO::setClassification));
前端将这个json发送到我的API 控制器:
我正在构建一个REST API, 和ActiveBid类 和我的泽西请求映射器,它具有获取数据的逻辑 有人能帮我吗?我不知道和卡桑德拉共事会这么难。
我有麻烦映射一个嵌套dto字段正确与MapStruct。我有几个DTO: 具有相应的映射器 到目前为止,一切工作都很好,生成的代码自动连接其他需要的映射器来正确地构建DTO。例如生成的仪器映射器实现 现在,当我试图创建一个包含嵌套工具dto的映射器时遇到了麻烦。映射器应使用instrumentMapper正确创建所需的dto。DTO: 映射器: 生成的代码: 现在media mapper得到了很好
我正在开发和spring应用程序,对于对象映射,我使用ModelMapper库。 我能够映射基本类映射,但当我尝试映射2个集合元素时,源是一组枚举,具有其他属性,如名称和描述,目标是具有id、名称和描述的pojo。 我已经尝试了类型地图和转换器在映射配置文件,但我得到例外的映射器。 源类来自其他应用程序(其依赖项已在pom.xml中添加)。我也不希望源类型作为目标setter中的参数。 前。 资料
我有一个用户的Entity-DTO转换器,如下所示: 我有很多Entity-DTO要管理,所以我想像这样抽象转换器 我的问题是:我必须放置什么而不是???
在对这个话题进行了大量的测试和研究之后,我无法完全解决我的问题。我正在springboot应用程序中使用modelmapper进行实体/DTO映射。我正在尝试配置modelmapper,将一个集合映射到一个简单的DTO对象。我已经创建了一个自定义转换器,它正在按预期工作: 我现在的问题是将此转换器应用于所有“集合”= 如果我直接在模型映射器中添加转换器,它就是不工作。 你对此有什么提示或解决办法吗