我试图通过调用
从类元数据中获取属性值 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);
}
它正在打印第一个对象值,从第二次运行开始,它抛出异常。
答案 0 :(得分:0)
延迟加载的行为是,当您关闭会话或刷新更改时..您只获得已在会话中的数据。如果你没有调用任何对象被定义为延迟加载的对象,并且在你尝试调用它之后刷新,它会产生同样的错误。对此的解决方案是通过在关闭会话或刷新数据之前调用它来将延迟加载更改为急切或加载对象