有没有一种方法可以将一个对象列表映射到一个对象列表ID?
我有以下对象:

public class Role implements Serializable {
    private List<Section> sections;
    //getters and setters
    ...
}

public class Section {
    private Long id;
    //getters and setters
    ...
}

public class RoleDTO implements Serializable {
    private List<Long> sections;
    //getters and setters
    ...
}


如何使用Dozer XML进行映射?

最佳答案

您可以使用custom converter

推土机XML

<field custom-converter-id="mySectionsConverter">
  <a>sections</a>
  <b>sections</b>
</field>


春季XML

<bean id="mapper" class="org.dozer.spring.DozerBeanMapperFactoryBean">
    <property name="mappingFiles" value="..." />
    <property name="customConvertersWithId">
        <map>
           <entry key="mySectionsConverter" value-ref="..." />
        </map>
    </property>
</bean>


注意:我正在从应用程序中删除推土机,因为我觉得这很复杂。在我看来,简单的java POJO转换器类比所有这些XML,自定义转换器和spring接线要好得多。我还发现了无法在嵌套转换器中重用某个值的情况,这会导致多个数据库命中,而POJO解决方案则不需要。

10-08 07:14