gpt4 book ai didi

java - 配置 ModelMapper 将嵌套对象映射到字段

转载 作者:行者123 更新时间:2023-12-02 02:25:02 25 4
gpt4 key购买 nike

这是我的 DTO:

public class TagVolumeDTO {
private Long id;
private Long idTag;
//...
}

public class TagTDO {
private Long id;
private Long amount;
//...
}

这是我的实体:

public class TagVolume {
private Long id;
private Tag tag;
//...
}

public class Tag {
private Long id;
private Long amount;
//...
}

我想配置我的 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));

用法:

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

输出:

TagDTO(id=1, amount=10)

TagVolumeDTO(id=123, idTag=1)

ModelMapper版本:1.1.0

P.s.您可以类似于 my answer 来组织代码在另一个问题中。

关于java - 配置 ModelMapper 将嵌套对象映射到字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47915261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com