У меня есть отображение XML определено:бульдозер отображение java.lang.Date (как поле карты), чтобы XMLGregorianCalendar
<mapping>
<class-a>java.util.HashMap</class-a>
<class-b>com.example.MyClass</class-b>
<field>
<a key="myDateField">this</a>
<b>myXMLGregorianCalendarField</b>
</field>
</mapping>
Здесь значение ключа myDateField
содержит экземпляр java.lang.Date class
. Поле com.example.MyClass#myXMLGregorianCalendarField
ожидает экземпляр javax.xml.datatype.XMLGregorianCalendar
.
Это отображение всегда генерирует исключение:
MapId: null
Type: null
Source parent class: java.util.HashMap
Source field name: this
Source field type: class java.util.Date
Source field value: Thu Jan 01 03:00:00 MSK 1970
Dest parent class: com.example.MyClass
Dest field name: myXMLGregorianCalendarField
Dest field type: javax.xml.datatype.XMLGregorianCalendar
org.dozer.MappingException: Illegal object type for the method 'setMyXMLGregorianCalendarField'.
Expected types:
javax.xml.datatype.XMLGregorianCalendar
Actual types:
java.util.Date
Как сделать эту работу преобразования правильно?
Примечания Long-долго отладки показали, что примитивные преобразователи называются по-разному для карт и " не-карта ". Итак, вот второй вопрос: почему?
Вы говорите, что преобразование работает, когда 'Date' не является полем карты? – artbristol
Да, у тебя все правильно. Преобразование работает отлично, когда 'Date' не является полем« Карта ». –