2011-01-26 56 views
0

我有兩個值的對象(ValueObjectA和ValueObjectB),每個NAME1和NAME2推土機:類轉換異常而映射列表

然後,我有兩個列表中,每個保持值對象中的一個,這是我打算映射與推土機。

只要我訪問映射的'listOfB',就會得到一個類轉換異常,因爲dozer將類型爲ValueObjectA的對象映射到ValueObjectsB列表中。

是否有可能映射這兩個列表而不迭代列表和按對象映射對象?

示例代碼:

...  
// 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

試着爲這兩個類定義一個映射。推土機將在運行時自動使用該映射並相應地轉換對象。

例如(psudo代碼):

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

我想在這兩個類中的字段名稱相同。如果不是,則需要在上述映射中指定它們。