我这里有个小问题,希望有人能帮我解决。
我想做一个从Object到Integer的映射。该对象被标记为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到Object。
我很感谢任何想法,如果你需要进一步的信息,请给我一句话。
感谢所有人。
发布于 2010-08-30 19:22:15
如果这是Hibernate,我会认为一个延迟加载的字段是在数据bean绑定到的会话之外访问的。
我建议加载实体并将其映射到同一事务中可以解决这个问题。当然,我也不确定:)
https://stackoverflow.com/questions/3599614
复制相似问题