繁体   English   中英

Hibernate LazyInitializationException:无法初始化代理-没有会话

[英]Hibernate LazyInitializationException: could not initialize proxy - no Session

我在Hibernate中映射了这样的结构(使用XDoclet,因为它是旧项目):

public class Student {
     String name;
     int age;
     School school;    //many to one
     // ...
}

public class School {
     String name;
     // ...
}

我想打印学生的学校名称(使用学生对象),如下所示:

System.out.println("School name: " + student.getSchool().getName());

但我得到:

org.hibernate.LazyInitializationException:无法初始化代理-没有会话

我不想更改映射文件(因为我不是这个的作者),那么该问题的其他解决方案是什么?

您如何阅读学生对象?
因为如果您正在从返回之前关闭会话的方法中读取Student ,则访问@Lazy集合将生成LazyInitializationException
我建议您检查会话生命周期。

在关闭会话之前,请确保您的代码调用了Student的accessor方法。 或者如果您使用的是Spring和Transaction,那么它必须在会话处于活动状态的范围内。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM