Exlude字段 - 使用Dozer进行映射

Ana*_*ass 3 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>
Run Code Online (Sandbox Code Playgroud)

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

Bog*_*dan 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>
Run Code Online (Sandbox Code Playgroud)