【发布时间】:2017-03-26 19:59:13
【问题描述】:
我有一个 AuthenticationFilter,它从 HTTP-Request 读取令牌,从数据库加载用户对象并将其设置为 SecurityContextHolder:
SecurityContextHolder.getContext().setAuthentication(resultOfAuthentication);
现在在控制器类的请求处理程序中,我想访问延迟加载的用户对象的字段。问题是我得到一个 LazyInitializationException 因为会话已关闭:
org.hibernate.LazyInitializationException: 延迟初始化失败 角色集合:a.b.c.User.devices,可以 不初始化代理 - 没有会话
任何想法如何在请求完成之前保持会话打开?这样我就可以延迟加载 User-Object 的字段了吗?
【问题讨论】:
-
可以在web.xml中配置
-class>openSession org.springframework.orm.hibernate3.support.OpenSessionInViewFilter openSession /*