慕田峪9158850
2022-12-15 11:15:05
我正在嘗試將我的實體映射到我的 DTO。對于我的知識,我正在嘗試不同的方法。我成功地使用了一個帶有隱式映射的映射,以及一個顯式映射,同時使用帶有配置方法的 PropertyMap?,F在我正在嘗試使用 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
提交
取消