假设我有一个对象 Foo,其中包含对对象 Bar 的引用列表:
public class Foo{
String fooStr;
List<Bar> barList;
//get/set barList/someStr go here
}
public class Bar {
String barStr;
}
使用推土机,假设 Bar 到 java.util.HashMap 是一个简单的映射,我如何将 Foo 的实例映射到 java.util.HashMap 的实例,以便 Bar 的引用实例也映射到 java.util.HashMap ? 也就是说,我希望映射的结果是一个带有键“barList”的 HashMap,它包含一个 ArrayList> 的实例。此列表中的每个 HashMap 应该是 Bar 到 HashMap 的映射。
例如,如果 Foo 持有对 Bar 的单个引用而不是列表,我会这样做:
<mapping>
<class-a>Foo</class-a>
<class-b>java.util.Map</class-b>
<field>
<a>bar</a>
<b key="bar">this</b>
<a-hint>Bar</a-hint>
<b-hint>java.util.Map</b-hint>
</field>
</mapping>
这将产生一个看起来像这样的 hashmap(使用 JSON 对象来表示 HashMaps):
{
"fooStr" : "value of fooStr",
{
"barStr" : "value of barStr"
}
}
但是我想知道如何使用对 Bar 的引用列表来表达对 HashMap 的转换,以便得到以下信息:
{
"fooStr" : "value of fooStr",
"barList" : [{ "barStr" : "bar1" }, { "barStr" : "bar2" }, ...]
}
首选不使用自定义映射器的答案,但我了解这是否是实现此行为的唯一方法。