假设我有一个源对象,包含两个属性,a 和 b,如下所示:
public class Source {
String a, b;
}
以及一个具有一个属性 c: 的目标对象
public class Target {
String c;
}
我想定义一个映射,它将:
- 如果 a 不为 null,则将属性 a 映射到 c
- 如果 b 不为 null,则将属性 b 映射到 c
我认为使用将 mapNulls 设置为 false 的映射器是可能的:
factory.registerClassMap(factory.classMap(Source.class, Target.class).field("a", "c").field("b", "c").mapNulls(false));
但是,当我将属性 a 设置为非空值并将属性 b 保留为 null 时,映射会生成目标对象,其中 c 设置为 null。
我是否误解了mapNulls的目的?
最佳答案
这是因为 mapNulls
在最后一个字段设置了属性。
尝试在这两个字段进行设置。
您也可以实现 ConfigurableMapper
。
关于java - 使用 Orika 将两个值映射到单个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20149604/