MappingException: InvocationTargetException - PullRequest
       16

MappingException: InvocationTargetException

2 голосов
/ 30 августа 2010

У меня небольшая проблема, и я надеюсь, что кто-нибудь может мне помочь.

Я хочу сделать отображение из объекта в целое число. Объект помечен как Fetchtype.Lazy.

Когда я делаю сопоставление, я получаю следующее сообщение об ошибке:

11:31:46,569 ERROR MappingProcessor:253 - Field mapping error -->
  MapId: null
  Type: null
  Source parent class: ClassA
  Source field name: MyObjectProperty
  Source field type: null
  Source field value: null
  Dest parent class: ClassB
  Dest field name: myIntegerProperty
  Dest field type: java.lang.Integer
org.dozer.MappingException: java.lang.reflect.InvocationTargetException
    at org.dozer.util.MappingUtils.throwMappingException(MappingUtils.java:88)
    at org.dozer.util.ReflectionUtils.invoke(ReflectionUtils.java:258)
    at org.dozer.propertydescriptor.GetterSetterPropertyDescriptor.invokeReadMethod(GetterSetterPropertyDescriptor.java:234)
    at org.dozer.propertydescriptor.GetterSetterPropertyDescriptor.getPropertyValue(GetterSetterPropertyDescriptor.java:68)
    at org.dozer.fieldmap.FieldMap.getSrcFieldValue(FieldMap.java:82)

InnerException:

Caused by: java.lang.IllegalStateException: Attempt to access an unloaded field of detached instance

Я создал пользовательский конвертер в файле dozer xml, но конвертер никогда не вызывается. Я предполагаю, что приложение получает проблему до достижения этого конвертера.

Забавно, что я могу успешно сопоставить поля, так что Integer to Object.

Я ценю любые идеи, если вам нужна дополнительная информация, пожалуйста, дайте мне слово.

Спасибо всем.

1 Ответ

4 голосов
/ 30 августа 2010

Если бы это был Hibernate, я бы подумал, что лениво загруженное поле было доступно вне Сессии, с которой связан компонент данных.

Я предлагаю загрузить объект и отобразить его в одной транзакции, чтобы решить эту проблему.Конечно, я точно не знаю:)

...