1

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

public class Source {
    String a, b;
}

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

public class Target {
    String c;
}

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

  1. 如果 a 不为空,则将属性 a 映射到 c
  2. 如果 b 不为空,则将属性 b 映射到 c

我认为将 mapNulls 设置为 false 的映射器是可能的:

factory.registerClassMap(factory.classMap(Source.class, Target.class).field("a", "c").field("b", "c").mapNulls(false));

但是,当我将属性 a 设置为非 null 值并将属性 b 保留为 null 时,映射会导致目标对象 c 设置为 null。

我是否误解了 mapNulls 的目的?

4

1 回答 1

1

这是因为mapNulls在最后一个字段设置属性。尝试在两个字段中进行设置。
你也可以实现一个ConfigurableMapper

于 2013-11-22T16:46:26.307 回答