0

我正在尝试通过调用从类元数据中获取属性值

getPropertyValue(Object object , String propertyName , EntityMode entityMode)

但它正在抛出一个

org.hibernate.LazyInitializationException: could not initialize proxy - no Session例外,这是我的代码:

ClassMetaData metaData = sessionFactory.getClassMetaData(myObject.getClass());
for(String propertyName : metaData.getPropertyNames()){
    Object propertyValue = metaData.getPropertyValue(myObject, propertyName, EntityMode.POJO);
    System.out.println(propertyValue);
}

它正在打印第一个对象值,并且从第二次运行开始,它正在抛出异常。

4

1 回答 1

0

延迟加载的行为是,当您关闭会话或刷新更改时..您只会获得已经在会话中的数据。如果您不调用任何关联被定义为延迟加载的对象,并且在刷新之后如果您尝试调用它,则会出现与您得到的相同的错误。对此的解决方案是将延迟加载更改为急切或通过在关闭会话或刷新数据之前调用它来加载对象

于 2014-05-24T01:23:53.340 回答