私は4つのクラスを持っています:
public class A { }
public class B extends A { }
public class C extends B { }
public class D extends B { }
継承に関するドーザーのドキュメントで読んだことから、それは非常に簡単であるに違いありません。スーパークラスを相互にマップする必要があり、サブクラスにも同様にマップする必要があります。xml での表示方法は次のとおりです。
<mapping>
<class-a>foo.A</class-a>
<class-b>foo.bar.A</class-b>
</mapping>
<mapping>
<class-a>foo.B</class-a>
<class-b>foo.bar.B</class-b>
</mapping>
<mapping>
<class-a>foo.C</class-a>
<class-b>foo.bar.C</class-b>
</mapping>
<mapping>
<class-a>foo.D</class-a>
<class-b>foo.bar.D</class-b>
</mapping>
これらのクラスはすべて同一です。つまり、D と D は同じ属性 (C と C など) を持っています。
問題: dozer に渡すオブジェクトには、C または D (ポリモーフィズム) によって初期化できるタイプ B の属性があります。dozer が新しいマップされたオブジェクトを返すとき、C や D ではなく、常に B の属性タイプを返します。これを修正するにはどうすればよいですか?