オブジェクト Bar への参照のリストを保持するオブジェクト Foo があるとします。
public class Foo{
String fooStr;
List<Bar> barList;
//get/set barList/someStr go here
}
public class Bar {
String barStr;
}
Dozer を使用して、Bar から java.util.HashMap へのマッピングが自明であると仮定すると、Foo のインスタンスを java.util.HashMap のインスタンスにマップして、参照される Bar のインスタンスが java.util.HashMap にもマップされるようにするにはどうすればよいですか? つまり、マッピングの結果が、ArrayList> のインスタンスを保持するキー「barList」を持つ HashMap になるようにします。このリストの各 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>
これにより、次のようなハッシュマップが生成されます (JSON オブジェクトを使用して HashMap を表します)。
{
"fooStr" : "value of fooStr",
{
"barStr" : "value of barStr"
}
}
しかし、Bar への参照のリストを使用して HashMap への変換を表現する方法を知りたいので、次のようにします。
{
"fooStr" : "value of fooStr",
"barList" : [{ "barStr" : "bar1" }, { "barStr" : "bar2" }, ...]
}
カスタム マッパーを使用しない回答が優先されますが、これがこの動作を実現する唯一の方法であるかどうかは理解しています。