排除字段 - 使用Dozer进行映射

时间:2012-06-27 14:50:05

标签: java mapping dozer

我想使用Dozer排除字段,如下所示:

    <mapping>
    <class-a>com.core.model.Model</class-a>
    <class-b>com.core.model.ModelIS</class-b>
    <field>
        <a>person</a>
        <b>person</b>
        <a-hint>com.core.Person</a-hint>
        <b-hint>com.core.PersonIS</b-hint>
    </field>
        <field-exclude>
                    <a>age</a>
                    <b>age</b>
            </field-exclude>
    </mapping>

所以类Model包含一个Person对象,而Person有一个age对象,如何从这个映射中排除age? 提前谢谢。

1 个答案:

答案 0 :(得分:8)

<field-exclude>是正确的方法,但它适用于它应用的映射,在本例中是模型类。

如果模型类有一个age对象,那么(给定您的映射)它将被排除。但是age对象在对象树中更深,它位于模型中的人员字段中,因此必须在映射人员字段时应用它。

将映射替换为以下映射,它应该可以工作:

<mapping>
    <class-a>com.core.model.Model</class-a>
    <class-b>com.core.model.ModelIS</class-b>
    <field>
        <a>person</a>
        <b>person</b>
        <a-hint>com.core.Person</a-hint>
        <b-hint>com.core.PersonIS</b-hint>
    </field>
</mapping>

<mapping>
    <class-a>com.core.Person</class-a>
    <class-b>com.core.PersonIS</class-b>
    <field-exclude>
        <a>age</a>
        <b>age</b>
    </field-exclude>
</mapping>