【问题标题】:Dozer API Date Mapping config without XML没有 XML 的 Dozer API 日期映射配置
【发布时间】:2014-07-07 20:50:58
【问题描述】:

有人知道如何将以下内容转换为 Dozer 的 api 调用格式吗?当涉及到 java 映射时,Dozer 映射站点上的文档非常少。

   <mappings>
  <configuration>
    <date-format>MM/dd/yyyy HH:mm</date-format>
  </configuration>

  <mapping wildcard="true">
    <class-a>org.dozer.vo.TestObject</class-a>
    <class-b>org.dozer.vo.TestObjectPrime</class-b>
    <field>
      <a>dateString</a>
      <b>dateObject</b>
    </field>
  </mapping>
  <mapping>
    <class-a>org.dozer.vo.SomeObject</class-a>
    <class-b>org.dozer.vo.SomeOtherObject</class-b>
    <field>
      <a>srcField</a>
      <b>destField</b>
    </field>
  </mapping>
</mappings>

【问题讨论】:

    标签: java dozer


    【解决方案1】:

    从 Dozer 的 5.5.1 版开始,API syntax cannot perform all mappings。映射中的 元素只能使用 XML 完成。

    如果您可以通过添加一些重复来接受绕过 限制的版本,那么下面的 API 映射应该与您的 XML 映射匹配:

    BeanMappingBuilder mappingBuilder = new BeanMappingBuilder() {
        @Override
        protected void configure() {
    
            String dateFormat = "MM/dd/yyyy HH:mm";
    
            mapping(TestObject.class, TestObjectPrime.class,
                    TypeMappingOptions.wildcard(true),
                    TypeMappingOptions.dateFormat(dateFormat))
                    .fields("dateString", "dateObject");
    
            mapping(SomeObject.class, SomeOtherObject.class,
                    TypeMappingOptions.dateFormat(dateFormat))
                    .fields("srcField", "destField");
        }
    };
    
    DozerBeanMapper apiBeanMapper = new DozerBeanMapper();
    apiBeanMapper.addMapping(mappingBuilder);
    

    如果您有兴趣了解更多详情,我已在 PasteBin 中添加了一个简单的 ApiAndXmlMappingTest example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多