【问题标题】:Dozer - Excluding nested Objects推土机 - 排除嵌套对象
【发布时间】:2023-03-24 07:43:01
【问题描述】:

根据此示例,您可以使用 Dozer 进行深度映射:

http://dozer.sourceforge.net/documentation/deepmapping.html

<mapping>
   <class-a>com.github.dozermapper.core.vo.deep.SrcDeepObj</class-a>
   <class-b>com.github.dozermapper.core.vo.deep.DestDeepObj</class-b>
   <field>
       <a>srcNestedObj.src1</a>
       <b>dest1</b>
   </field>
   <field>
       <a>srcNestedObj.src2</a>
       <b>dest2</b>
   </field>
   <field>
       <a>srcNestedObj.srcNestedObj2.src5</a>
       <b>dest5</b>
   </field>
</mapping>

同样我想排除一些嵌套的对象和字段,所以我尝试了同样的方法:

<mapping map-id="case1" map-null="false">
   <class-a>com.server.dal.entities.ClassA</class-a>
   <class-b>com.server.dal.dto.ClassB</class-b>

   <field-exclude>
       <a>childObj1.childObj2</a>
       <b>childObj1.childObj2</b>
   </field-exclude>
   <field-exclude>
       <a>childObj1.childObj3.testMap</a>
       <b>childObj1.childObj3.testMap</b>
   </field-exclude>
 </mapping>

但这并没有按预期工作。还有其他方法可以排除嵌套对象的字段吗?

【问题讨论】:

    标签: java mapping dozer


    【解决方案1】:

    您可以按如下方式排除嵌套对象:

    <mapping map-id="caseClassA" map-null="false">
        <class-a>com.server.dal.entities.ClassA</class-a>
        <class-b>com.server.dal.dto.ClassB</class-b>
        <field map-id="excludeSubItem1">
            <a>childObj1</a>
            <b>childObj1</b>
        </field>
    </mapping>
    
    <mapping map-id="excludeSubitem1" map-null="false">
        <class-a>com.server.dal.entities.ClassChild1</class-a>
        <class-b>com.server.dal.dto.ClassChild1</class-b>
        <field-exclude>
            <a>childObj2</a>
            <b>childObj2</b>
        </field-exclude>
        <field map-id="excludeSubItem2">
            <a>childObj3</a>
            <b>childObj3</b>
        </field>
    </mapping>
    
    <mapping map-id="excludeSubitem2" map-null="false">
        <class-a>com.server.dal.entities.ClassChild3</class-a>
        <class-b>com.server.dal.dto.ClassChild3</class-b>
        <field-exclude>
            <a>testMap</a>
            <b>testMap</b>
        </field-exclude>
    </mapping>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多