在一个运行了很长一段时间而没有任何变化的应用程序中我得到了异常
failed to lazily initialize a collection of role: ... , no session or session was closed
突然之间可能是什么原因?发生这种情况的方法在过去 3 年中经过测试并成功使用。
感谢您的帮助, 艾尔
附言环境:JSP、Spring、Hibernate、MySQL
最佳答案
如果您四处传递一个实体并最终离开读取它的事务边界,您将无法访问任何尚未初始化的关联(我猜您的关联类似于 Collection<Role> roles
)。如果您随后访问 roles
Hibernate 可能会尝试初始化它,但由于事务(以及与之相关的 Hibernate session )已经关闭,您会得到该异常。
The method where this happens is tested and used successfully for the past 3 years.
这可能意味着调用该方法时集合未被初始化的情况很少见,并且在过去 3 年内没有发生过。
关于java - 突发 "failed to lazily initialize a collection of role...:no session or session was closed"- 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5352680/