java - 突发 "failed to lazily initialize a collection of role...:no session or session was closed"- 异常

标签 java mysql hibernate spring jsp

在一个运行了很长一段时间而没有任何变化的应用程序中我得到了异常

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/

相关文章:

java - Factorial - 未解析的编译,必须返回 int 类型的结果

java - 使用 Retrofit 获取嵌入另一个对象的 JSON 列表

mysql - 从文件或本地表获取 SQL QUERY 的 WHERE IN 过滤器的输入列表

java - 节点 : org. hibernate.hql.internal.ast.tree.IdentNode HQL 没有数据类型

java - 向服务器发送 GPS 数据不起作用?

java - SelectionKey 不可写

php - (Laravel) 表关系和外键的用法

php - 让 URL 动态看起来不错

java - Hibernate 别名 - 仍然执行 n+1 选择是否正常?

java - 没有可用类型的合格 bean : expected at least 1 bean which qualifies as autowire candidate