在使用dozer进行数据映射时,有一种情况,我们需要将一个对象里面的部分数据映射到一个Map中(这里使用HashMap)
开始我参考了dozer的文档这样写:
<mapping >
<class-a>com.test.obj</class-a>
<class-b>java.util.HashMap</class-b>
<field>
<a>mytitle</a>
<b key="Title">this</b>
<b-hint>java.lang.String</b-hint>
</field>
</mapping>
发现不论怎么样,都会把class-a中的所有字段都映射到Map中,并且加上<field-exclude>标签都不管用
后来查看了官方的例子,发现其实只要修改一下就OK了,配置文件这样写:
<mapping map-id="mymapping">
<class-a >java.util.HashMap</class-a>
<class-b>com.test.obj</class-b>
<field >
<a>Title</a>
<b>mytitle</b>
<a-hint>java.lang.String</a-hint>
</field>
</mapping>
并且可以增加<field-exclude>标签也是有效的。注意的是 <a>Title</a>是指Map中的Key.
映射是注意指定map-id。
默认情况下,没有在xml配置中写出来的字段是不会映射的。
本文介绍如何使用Dozer将对象的部分属性正确映射到HashMap中,并提供了有效的配置示例。
8038

被折叠的 条评论
为什么被折叠?



