2014-07-07 19 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

相關問題