繁体   English   中英

使用Dozer API将Dozer的嵌套类字段映射到平面Map.class

[英]Dozer nested class field to flat Map.class mapping using Dozer API

我正在尝试使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));
  }
 }

我建议您尝试以下配置:

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");
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM