【问题标题】:Dozer Bean Mapper Configuration with Collections and set-method attribute带有 Collections 和 set-method 属性的 Dozer Bean Mapper 配置
【发布时间】:2013-10-16 11:52:18
【问题描述】:

我有一个关于 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 是否自动映射所有字段,如果未设置配置则由它们创建?

感谢您的帮助!

问候 马尔维夫

【问题讨论】:

    标签: java xml dozer


    【解决方案1】:
    • “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 在这部分做了什么?没有其他配置,说明了,两个集合应该如何映射?

    了解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.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      相关资源
      最近更新 更多