复杂对象列表的推土机映射
Dozer mapping of Lists of Complex Object
有没有办法将一个对象列表映射到一个对象 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>
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>
注意:我正在从我的应用程序中删除推土机,因为我觉得它会使事情复杂化。在我看来,一个简单的 java POJO 转换器 class 比所有这些 XML、自定义转换器和 spring 布线要好得多。我还发现了无法在嵌套转换器中重用值的情况,这导致了 POJO 解决方案不需要的多次数据库命中。
注意:这不是答案……更多的是愿望
如果推土机支持 groovy 的 spread operator 就好了。这将是一个很好的功能请求
例如:
<field>
<a>sections*.id</a>
<b>sections</b>
</field>
有没有办法将一个对象列表映射到一个对象 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>
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>
注意:我正在从我的应用程序中删除推土机,因为我觉得它会使事情复杂化。在我看来,一个简单的 java POJO 转换器 class 比所有这些 XML、自定义转换器和 spring 布线要好得多。我还发现了无法在嵌套转换器中重用值的情况,这导致了 POJO 解决方案不需要的多次数据库命中。
注意:这不是答案……更多的是愿望
如果推土机支持 groovy 的 spread operator 就好了。这将是一个很好的功能请求
例如:
<field>
<a>sections*.id</a>
<b>sections</b>
</field>