我正在尝试将我的实体映射到我的 DTO。对于我的知识,我正在尝试不同的方法。我成功地使用了一个带有隐式映射的映射,以及一个显式映射,同时使用带有配置方法的 PropertyMap。现在我正在尝试使用 TypeMap 进行显式映射。最后一个我无法上班。连同 Modelmapper 入门,我使用了这个线程中的答案作为示例,How to use Explicit Map with Java 8 and ModelMapper?static ResponseB convertBEntityToDtoExplicitTypeMap(ModelB modelB){ ModelMapper modelMapper = new ModelMapper(); TypeMap<ModelB, ResponseB> typeMap = modelMapper.createTypeMap(ModelB.class, ResponseB.class); typeMap.addMappings(mapping -> { mapping.map(modelB.getId(), ResponseB::setId); mapping.map(modelB.getBankaccountName(), ResponseB::setB); mapping.map(modelB.isActive(), ResponseB::setActive); }); return modelMapper.map(modelB, ResponseB.class);}上面的块是我的代码示例,它不起作用。使用 setId 我有错误:不兼容的类型:V 不可转换为 Long。setB 有错误:类型不兼容:V 不可转换为字符串。setActive 有错误:类型不兼容:V 不可转换为布尔值。我怎样才能让这个例子与 TypeMap 一起工作?
1 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
通过不断尝试,我自己弄明白了。
我不得不使用类而不是 mapping.map 中的对象
static ResponseB convertBEntityToDtoExplicitTypeMap(ModelB modelB){
ModelMapper modelMapper = new ModelMapper();
TypeMap<ModelB, ResponseB> typeMap = modelMapper.createTypeMap(ModelB.class, ResponseB.class);
typeMap.addMappings(mapping -> {
mapping.map(ModelB::getId, ResponseB::setId);
mapping.map(ModelB::getBankaccountName, ResponseB::setB);
mapping.map(ModelB::isActive, ResponseB::setActive);
});
return modelMapper.map(modelB, ResponseB.class);
}
添加回答
举报
0/150
提交
取消
