2012-05-31 4 views
1

У меня есть следующий сценарий:Dozer Сопоставление между примитивным типом данных и пользовательским объектом?

Class A{ 
    private List<Long> longList; 
    //getter and setter 
} 

Class B{ 
    private List<C> listC; 
    //getter and setter 
} 

Class C{ 
    private Long id; 
    //getter and setter 
} 

Теперь я хочу, чтобы конвертировать между longList и C. Я нашел следующее картографирование:

<mapping> 
    <class-a>A</class-a> 
    <class-b>B</class-b> 
    <field> 
    <a>longList</a> 
    <b>listC</b> 
    <a-hint>java.lang.Long</a-hint> 
    <b-hint>C</b-hint> 
    </field> 
</mapping> 

Я не уверен, правильное решение или нет. Могу ли я настроить сопоставление между long и C, что долгое время отображается на C.id?

ответ

3

Вы можете попробовать отображение Долго C следующим образом:

<mapping> 
    <class-a>A</class-a> 
    <class-b>B</class-b> 
    <field> 
     <a>longList</a> 
     <b>listC</b> 
    <field> 
</mapping> 

<mapping> 
    <class-a>java.lang.Long</class-a> 
    <class-b>C</class-b> 
    <field> 
     <a>this</a> 
     <b>id</b> 
    <field> 
</mapping> 
+0

спасибо человеку. Это сработало. Я думал, что ** это ** будет только для карт. Но это работает и в этом случае. –

+3

У меня такая же проблема. Но это не работает для меня (Dozer 5.3.2). Проблема инвертирована, мне нужно преобразовать C в Long – SiMet

Смежные вопросы