gpt4 book ai didi

java - ModelMapper:混合隐式和显式映射?

转载 作者:搜寻专家 更新时间:2023-11-01 03:22:11 31 4
gpt4 key购买 nike

为了编写所需的最少代码量,我试图让 ModelMapper 生成其隐式映射,并且只为那些它无法自动映射的属性编写显式属性映射。

如果我让 ModelMapper 使用以下方法生成隐式映射:

modelMapper.createTypeMap(SourceType.class, DestType.class);

它提示 setSomeId 有多个可能的映射。然后我尝试使用以下方法修复它:

modelMapper.addMappings(new PropertyMap<SourceType, DestType>() {
protected void configure() {
map().setSomeId(source.getProperty().getWeirdID());
}
});

但是,我发现ModelMapper 仍然报错,因为实际上在createTypeMap 上抛出了一个异常,所以它没有机会到达我的自定义映射代码。

如果我颠倒这两个语句,我会得到一个错误:

java.lang.IllegalStateException: A TypeMap already exists for class SourceType and class DestType

如果我完全省略 createTypeMap,ModelMapper 会提示缺少 DestType 的所有其他属性的映射(那些它能够使用 createTypeMap 自动映射的属性)。

我在文档中没有发现明确的线索是否支持混合隐式映射和显式映射以及它是如何完成的。

有人能帮忙吗?

最佳答案

代替 ModelMapper.createTypeMap 尝试 ModelMapper.addMappings(首先)。这仍然会创建(并返回)一个 TypeMap,但在这样做时会考虑您的 PropertyMap

关于java - ModelMapper:混合隐式和显式映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27563458/

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