java - 没有 XML 的 Dozer API 日期映射配置

标签 java dozer

谁知道如何将下面的转换成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>

最佳答案

从 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);

如果您对更多细节感兴趣,我添加了一个简单的 ApiAndXmlMappingTest example到 PasteBin。

关于java - 没有 XML 的 Dozer API 日期映射配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24619653/

相关文章:

java - Spring事务感知缓存不起作用

java - 我可以在我的 Activity 加载之前显示动画吗?

java - 为什么 JXL 不能在循环内工作

java - 迭代继承的类对象的列表

java - Dozer Mapper 不直接映射

java - 使用 Dozer 映射值对象

java - spring boot,cloud spring配置错误,为什么这不起作用

java - 推土机试图将一个类映射到它的接口(interface)

java - 如何使用 DozerBeanMapper 将具有对象数组列表的 HashMap(列表是 HashMap 中的值)映射到另一个 HashMap?

java - 如何使用 map 中的嵌入式集合填充对象?