1

我有一个关于推土机 Bean 映射的问题。我有以下 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 是否会自动映射所有字段,如果未设置配置则由它们创建?

感谢您的帮助!

格雷茨马尔维夫

4

1 回答 1

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

可能具有非正统 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 在这部分做了什么?没有其他配置,里面描述,两个集合应该如何映射?

了解自定义 set() 和 get() 方法 dozer 文档

例如,如果我们通过调用 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.

于 2015-01-14T17:50:40.090 回答