【问题标题】:Dozer nested class field to flat Map.class mapping using Dozer API使用 Dozer API 的 Dozer 嵌套类字段到平面 Map.class 映射
【发布时间】:2015-05-27 11:32:14
【问题描述】:

我正在尝试让 Dozer 映射我的课程:

public class A {
  private B someB;
  private String someAText;
}

public class B {
  private String someBText;
}

到结果Map.class 如下:

"someAText" => "someATextValue"
"someBText" => "someBTextValue"

.

也就是说,我正在尝试将嵌套类的字段映射指定为平面 Map 键目标。我通过 Java API 使用 Dozer,而不是 xml。我无法找到合适的构建器配置来管理它。基本代码类似于:

beanMappingBuilder = new BeanMappingBuilder() {
  @Override
  protected void configure() {
    mapping(B.class, Map.class, TypeMappingOptions.oneWay(), mapNull(true));
    mapping(A.class, Map.class, TypeMappingOptions.oneWay(), mapNull(true));
  }
 }

【问题讨论】:

    标签: java dozer


    【解决方案1】:

    建议你试试下面的配置:

    beanMappingBuilder = new BeanMappingBuilder() {
    
      @Override
      protected void configure() {
        // 'A > Map' mapping
        mapping(A.class, Map.class, TypeMappingOptions.oneWay(), TypeMappingOptions.mapNull(true))
          .fields("someAText", "someATextValue")
          .fields("someB.someBText", "someBTextValue");
    
        // 'B > Map' mapping
        mapping(B.class, Map.class, TypeMappingOptions.oneWay(), TypeMappingOptions.mapNull(true))
          .fields("someBText", "someBTextValue");
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      相关资源
      最近更新 更多