我这里有一个小问题,希望有人能帮助我。
我想做一个从对象到整数的映射。该对象被标记为 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)
内部异常:
Caused by: java.lang.IllegalStateException: Attempt to access an unloaded field of detached instance
我在 dozer xml 文件中创建了一个自定义转换器,但从未调用过该转换器。我猜应用程序在到达此转换器之前遇到了问题。
有趣的是,我可以通过相反的方式成功映射字段,因此从整数到对象。
我很感激任何想法,如果您需要更多信息,请给我留言。
谢谢大家。
最佳答案
如果这是 Hibernate,我会认为在数据 bean 绑定(bind)到的 Session 之外访问了延迟加载的字段。
我建议加载实体并将其映射到同一事务中可以解决问题。我当然不确定:)
关于java - 映射异常 : InvocationTargetException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3599614/