具有集合和set-method属性的Dozer Bean Mapper配置

时间:2013-10-09 08:24:08

标签: java xml dozer

我有一个关于Dozer Bean Mapping的问题。我有以下xml配置部分(我不明白其中的一些事实):

<mapping>
    <class-a>
        entity.template.TemplateEntity
    </class-a>
    <class-b>dto.template.TemplateDto
    </class-b>
    <field>
        <a set-method="setLang" get-method="getLang">lang</a>
        <b set-method="setLang" get-method="getLang">lang</b>
        <a-hint>entity.template.TemplateLanguageEntity</a-hint>
        <b-hint>dto.template.TemplateLanguageDto</b-hint>
    </field>
</mapping>

“set-method =”setLang“get-method =”getLang“”的具体含义是什么?

Dozer Bean Mapper在这部分做了什么?没有其他配置,它描述了如何映射两个集合?

<a-hint>entity.template.TemplateLanguageEntity</a-hint>
<b-hint>dto.template.TemplateLanguageDto</b-hint>

Dozer Mapper是否自动映射所有字段,如果没有设置配置,它们是否由它们建立?

感谢您的帮助!

格尔茨 Marwief

1 个答案:

答案 0 :(得分:0)

  • &#34; set-method =&#34; setLang&#34;具体含义是什么?得到-方法=&#34; getLang&#34;&#34;

可能具有非正统getter和setter方法的Bean,Dozer支持用户指定的setter和getter方法。在这种情况下进行双向映射,请查看下面的示例。

元素A中的源字段使用属性指定自定义setter方法和getter方法。

<field>
  <a set-method="placeValue" get-method="buildValue">value</a>
  <b>value</b> 
</field>
  • Dozer Bean Mapper在这部分做了什么?没有其他配置描述如何映射两个集合?

了解Custom set() and get() methods dozer documentation

让我们看一下如果我们通过调用addIntegerToList()方法将String映射到ArrayList。     请注意,这被定义为单向字段类型,因为我们无法将ArrayList映射到String。

<!-- we can not map a ArrayList to a String, 
         hence the one-way mapping -->
    <field type="one-way">         
      <a>integerStr</a>
      <b set-method="addIntegerToList">integerList</b>
    </field>
  • Dozer Mapper是否自动映射所有字段,如果没有设置配置,它们是否由它们建立?

是的,Dozer Mapper会自动将所有字段从A类映射到B类iff both the field names are same.