2011-01-26 5 views
0

マッピングリストはその後、私は二つのリストを持っている間は、それぞれが、私はマップを計画して値オブジェクトのいずれかを、保持していますドーザーとドーザー:クラスキャスト例外私は2つの値NAME1とオブジェクト(ValueObjectAとValueObjectB)、それぞれname2の</p> <p>を持って

マップされた 'listOfB'にアクセスすると、DozerはValueObjectA型のオブジェクトをValueObjectsBのリストにマップするため、Class Cast Exceptionを取得します。

リストを反復せずにこれらの2つのリストをマップでき、オブジェクトごとにマップできますか?

サンプルコード:簡単

...  
// prepare object A 
List<ValueObjectA> lostOfA = new LinkedList(); 
ValueObjectA voA = new ValueObjectA(); 
voA.setName1("foo"); 
voA.setName2("bar"); 
lostOfA.add(voA); 

// map object A to object B 
List<ValueObjectB> listOfB = new LinkedList(); 
mapper.map(lostOfA, listOfB); 

for (ValueObjectB voB:listOfB){ 
... 

答えて

0

ありません。

Dozerフォーラムでthis threadをご覧ください。

「ネストしたコレクションは、自動的に に処理されていますが、トップレベルのコレクションは を繰り返し処理する必要が ことを正しい現在、これを処理する よりエレガントな方法はありません。

を引用します。 "

0

両方のクラスのマッピングを定義してみます。 Dozerはこのマッピングを実行時に自動的に使用し、それに応じてオブジェクトを変換します。

例えば(psudoコード):

<mapping> 
    <classA>ValueObjectA</classA> 
    <classB>ValueObjectB</classB> 
<mapping> 

は、私は両方のクラスのフィールド名が同じであると思います。そうでない場合は、上記のマッピングで指定する必要はありません。

関連する問題