java - 使用 Orika 将两个值映射到单个属性

标签 java orika

假设我有一个源对象,包含两个属性,a 和 b,如下所示:

public class Source {
    String a, b;
}

以及一个具有一个属性 c: 的目标对象

public class Target {
    String c;
}

我想定义一个映射,它将:

  1. 如果 a 不为 null,则将属性 a 映射到 c
  2. 如果 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/

相关文章:

java - MongoDB 更新嵌套数组的元素

java - 不满意的依赖异常 : Requested bean is currently in creation unresolvable circular reference

java - Orika 映射器 - 映射到 List<String>

java - 如何使用 Orika 映射 java.time.LocalDate 字段?

java - Orika 列表为空

java - 为并行处理数据选择最佳线程数

java - 调用递归函数如何改变结果?

java - 如何创建log4j文件并运行程序

java - 映射时向 Orika MappingContext 添加外部数据

java - Orika:从字符串映射到 SomeObjects 列表