Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/session/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate &引用;无法初始化代理-无会话“;从CustomScope调用时_Hibernate_Session_Jpa_Lazy Evaluation - Fatal编程技术网

Hibernate &引用;无法初始化代理-无会话“;从CustomScope调用时

Hibernate &引用;无法初始化代理-无会话“;从CustomScope调用时,hibernate,session,jpa,lazy-evaluation,Hibernate,Session,Jpa,Lazy Evaluation,当从注释如下的控制器调用存储库时,我遇到了一个小问题(该控制器位于服务器“web管理服务”中,它是一个管理面板) 为了向您展示一个示例,我的服务(web服务)中有这些实体 大学生 public class University { private String id; private String name; private String address; @OneToMany(cascade = CascadeType.DETACH,fetch = FetchType.LAZY)

当从注释如下的控制器调用存储库时,我遇到了一个小问题(该控制器位于服务器“web管理服务”中,它是一个管理面板)

为了向您展示一个示例,我的服务(web服务)中有这些实体 大学生

public class University {
 private String id;
 private String name;
 private String address;

 @OneToMany(cascade = CascadeType.DETACH,fetch = FetchType.LAZY)
 private List<Student> students;

 // setters and getters
}
公立大学{
私有字符串id;
私有字符串名称;
私有字符串地址;
@OneToMany(cascade=CascadeType.DETACH,fetch=FetchType.LAZY)
私人名单学生;
//二传手和接球手
}
现在,当我从控制器调用我的DAO时,它将调用JPA存储库上的一个方法(一个简单的“从大学u中选择u”),学生列表未填充,并且出现以下错误: “无法初始化代理-无会话”

但是。。当我直接在我的服务范围内拨打完全相同的电话时,我没有这个问题吗? 即使fetch=FetchType.LAZY,在调用students.get(0.getName())时,我的学生列表也正确填写


ps:我正在使用Spring、JPa和Hibernate

将fetchType更改为Earge…然后它将工作,短期解决方案。感谢您的回复,但我对长期解决方案更感兴趣。如何让hibernate停止像这样关闭会话?使用一个Eager本身并不是一个问题…它只是一个问题,如果您的服务器上的负载太高…这样我是认真的。
public class University {
 private String id;
 private String name;
 private String address;

 @OneToMany(cascade = CascadeType.DETACH,fetch = FetchType.LAZY)
 private List<Student> students;

 // setters and getters
}