Проблема отображения бульдозера с преобразованием 1: 1

Я получаю эту ошибку при отображении этих двух полей. Я искал документацию о том, как отобразить это из одного объекта в другой, но очень мало документации для типа данных DurationImpl. Отображение 1:1 должно быть тем же типом объекта, но по какой-то причине dozer не улавливает это. Есть ли способ переопределить источник для типа javax.xml.datatype.Duration?

main ERROR org.dozer.MappingProcessor(283) - Field mapping error -->
      MapId: null
      Type: null
      Source parent class: com.aa.flighthub.services.flightinfo.operational.messages.Times
      Source field name: autoETDAccumMins
      Source field type: class com.sun.org.apache.xerces.internal.jaxp.datatype.DurationImpl
      Source field value: PT0S
      Dest parent class: com.aa.matrix.flightinfo.types.flightinfo.v1.Times
      Dest field name: autoETDAccumMins
      Dest field type: javax.xml.datatype.Duration

person Drake0727    schedule 03.01.2014    source источник
comment
Ошибка говорит, что значение исходного поля: PT0S. В документации для поля назначения (javax.xml.datatype.Duration) говорится, что объект Duration представляет период григорианского времени, который состоит из шести полей (годы, месяцы, дни, часы, минуты и секунды) плюс знак (+ /-) поле. Есть вероятность, что проблема в содержании данных в экземпляре autoETDAccumMins?   -  person Bill Horvath    schedule 03.01.2014
comment
Я так не считаю, я думаю, что содержание является действительным. Я ввел другое значение -P0DT6H0M0S, похожее на предоставленный формат, и получил ту же ошибку сопоставления. Спасибо за помощь кстати!   -  person Drake0727    schedule 03.01.2014


Ответы (1)


Что ж, я, наконец, понял ошибку, поэтому я реализовал собственное сопоставление бульдозера для сопоставления этого конкретного класса. После сопоставления с использованием этого метода сопоставление прошло нормально. Надеюсь, это поможет кому-то в будущем.

person Drake0727    schedule 06.01.2014