复杂对象列表的推土机映射

时间:2015-01-29 10:00:39

标签: java mapping dozer

有没有办法将一个对象列表映射到一个对象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进行映射?

2 个答案:

答案 0 :(得分:1)

注意:这不是一个答案...更多的愿望

如果推土机支持groovy&#39; spread operator,那就太好了。这将是一个很好的功能请求

例如:

<field>
    <a>sections*.id</a>
    <b>sections</b>
</field>

答案 1 :(得分:0)

您可以使用custom converter

推土机XML

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

Spring 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>

注意:我正在从我的应用程序中删除dozer,因为我觉得它使事情变得复杂。在我看来,一个简单的Java POJO转换器类比所有这些XML,自定义转换器和弹簧布线做得好得多。我还发现了无法在嵌套转换器中重用值导致POJO解决方案不需要多个数据库命中的情况。