【问题标题】:DozerBeanMapper: Ignore Null values from SourceDozerBeanMapper:忽略来自 Source 的 Null 值
【发布时间】:2017-02-23 12:26:27
【问题描述】:

在我的 Java 项目中,我使用 org.dozer.BeanMapper 将复杂的源对象合并到具有相同类型的目标对象中:

sourceObject.valueA = null
sourceObject.valueB = B1
sourceObject.valueC = C1

destinationObject.valueA = A2
destinationObject.valueB = null
destinationObject.valueC = C2

beanMerger.map(sourceObject, destinationObject);

这导致我的目标对象中的这个值:

destinationObject.valueA: null
destinationObject.valueB: B1
destinationObject.valueC: C1 

我可以配置 BeanMapper,使其不应该覆盖具有空值的字段吗?我的预期结果应该是:

destinationObject.valueA: A2
destinationObject.valueB: B1
destinationObject.valueC: C1 

甚至更好(不要触摸目标对象的设置值)

destinationObject.valueA: A2
destinationObject.valueB: B1
destinationObject.valueC: C2

【问题讨论】:

    标签: java mapping dozer


    【解决方案1】:

    我找到了解决办法:

    beanMerger.addMapping(
      new BeanMappingBuilder() {
        protected void configure() {
           mapping(MyObjectDTO.class, MyObjectDTO.class, TypeMappingOptions.mapNull(false));
        }
      });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      • 1970-01-01
      • 2013-06-29
      • 2011-04-24
      • 2019-05-26
      相关资源
      最近更新 更多