私はブルドーザーのフレームワークを正しく評価しています。次のユースケースを処理できるかどうか疑問に思っていました。
クラス:
public ClassA {
private Set<ItemA> aItems;
}
public ClassB {
private ClassC cInstance;
}
public ClassC {
private List<ItemB> bItems;
}
ブルドーザーのマッピング:
<mapping>
<class-a>ClassA</class-a>
<class-b>ClassB</class-b>
<field>
<a>aItems</a>
<b>cInstance.bItems</b>
</field>
</mapping>
これまでの私のテストから、これはうまくいかないようです。私は特に、ClassBとClassC のインスタンスをオンデマンドで生成する必要があることを dozer にどのように伝えればよいのでしょうか? 特に、宛先モデルの「中間」クラスとしてのみ存在する ClassB の特定の dozer マッピングが必要ですか?
PS: それが役に立てば、宛先モデルは JAXB クラスで構成されています
PPS: また、cInstance のセッター メソッドを変更して、null の場合は ClassC の新しいインスタンスを生成するようにしようとしましたが、残念ながら運がありませんでした。さらに、setter メソッドをそのように変更したくありません (ただし、マッピングに使用される Factory クラスにこれをアウトソーシングすることもできます)。