如何将我的DTO压平为VO

时间:2015-12-08 21:30:42

标签: dozer

以下是我想要映射的示例简单方案。我有一个DTO如下

Class Person {
     String Name;
     List<Contact> contacts;
}
Class Contact {
 String type;  //values 'home', 'work', 'mobile' etc
 Phone number;
}
Class Phone {
   String areaCode;
   String number;
}

我需要将它映射到VO对象,如下所示

Class PersonVO {
   String Name;
   PhoneVO homePhone;
   PhoneVO workPhone;
}

Class PhoneVO {
 String areaCode;
 String number;
}

使用推土机是否有更简单的方法来映射它们,或者我必须使用自定义转换器?如何使用手机默认映射到phoneVO?

1 个答案:

答案 0 :(得分:0)

  1. 如果不使用CustomConverter,则无法映射Person DTO和PersonVO, 因为人的电话号码&#39;变量根据是否得到它的值 &#39;类型&#39;变量包含值&#39; home&#39;或者&#39; work&#39;等等。推土机无法处理 有条件的案件。
  2. 但是,仅Phone和PhoneVO的默认映射非常简单:

    <mappings xmlns="http://dozer.sourceforge.net"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://dozer.sourceforge.net
          http://dozer.sourceforge.net/schema/beanmapping.xsd">
        <mapping>
            <class-a>{package-name}.Phone</class-a>
            <class-b>{package-name}.PhoneVO</class-b>
       </mapping>
    </mappings>