2014-07-07 15 views
3

任何人都知道如何将以下内容转换为Dozer的api调用格式?当谈到java映射时,Dozer映射网站上的文档非常渺茫。Dozer API日期映射配置不带XML

<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> 

回答

3

从推土机版本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

相关问题