2010-08-30 35 views
2

我在这里有一个小问题,希望有人能帮助我。MappingException:InvocationTargetException

我想做一个从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 

我创建了推土机的XML文件自定义转换,但转换器永远不会被调用。我猜应用程序在到达这个转换器之前会遇到问题。

有趣的是,我可以用其他方式成功地映射字段,所以Integer到Object。

我很欣赏任何想法,如果您需要更多信息,请给我一个词。

Thx to all。

回答

4

如果这是Hibernate,我会认为一个懒惰加载的字段被访问以外的数据bean绑定到会话。

我建议加载实体并将其映射到相同的事务将解决问题。我当然不知道,当然:)

+0

是的,你是对的我把@Transactional方法,它现在的作品。非常感谢你 – MUG4N 2010-08-30 12:10:19