MappingException:InvocationTargetException

时间:2010-08-30 10:39:31

标签: java jpa openjpa dozer

我在这里遇到一个小问题,希望有人可以帮助我。

我想做一个从Object到Integer的映射。 Object被标记为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 个答案:

答案 0 :(得分:4)

如果这是Hibernate,我认为在数据bean绑定的Session之外访问了一个延迟加载的字段。

我建议加载实体并将其映射到同一事务中将解决问题。我当然不确定这一点:)