这是我的 DTO:
public class TagVolumeDTO {
private Long id;
private Long idTag;
//...
}
public class TagTDO {
private Long id;
private Long amount;
//...
}
Run Code Online (Sandbox Code Playgroud)
这是我的实体:
public class TagVolume {
private Long id;
private Tag tag;
//...
}
public class Tag {
private Long id;
private Long amount;
//...
}
Run Code Online (Sandbox Code Playgroud)
我想配置我的 ModelMapper 将 Tag#id 映射到 TagVolumeDTO#idTag。那可能吗?
配置:
ModelMapper mapper = new ModelMapper();
mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
mapper.typeMap(TagVolume.class, TagVolumeDTO.class)
.addMappings(m -> m.map(src -> src.getTag().getId(), TagVolumeDTO::setIdTag));
Run Code Online (Sandbox Code Playgroud)
用法:
Tag tag = new Tag();
tag.setId(1L);
tag.setAmount(10L);
TagVolume tagVolume = new TagVolume();
tagVolume.setId(123L);
tagVolume.setTag(tag);
System.out.println(mapper.map(tagVolume.getTag(), TagDTO.class));
System.out.println(mapper.map(tagVolume, TagVolumeDTO.class));
Run Code Online (Sandbox Code Playgroud)
输出:
TagDTO(id=1, 金额=10)
TagVolumeDTO(id=123,idTag=1)
模型映射器版本:1.1.0
Ps 您可以组织您的代码,类似于我在另一个问题中的回答。
| 归档时间: |
|
| 查看次数: |
12885 次 |
| 最近记录: |