[英]Hibernate Exception Fixed By Alt+Tab
我在Hibernate中遇到一个非常奇怪的问题,我想对此发表一些意见。 在我的代码中,如果执行以下操作:
我收到一个错误消息:
failed to lazily initialize a collection of role: XYZ, no session or session was closed
很公平。 但是当我做同样的事情但在中间添加一个alt + tab时,一切都很好。 例如
我对从应用程序切换焦点如何使其按我的意愿工作感到有些困惑。 有没有人能照亮这个主题? 我不认为这是一个锁定问题,即使我比第二步更快地执行了第二组步骤,仍然没有错误。
这是一个使用Hibernate 3.3.2.GA和3.4.0.GA的Seam应用程序。
您在使用JavaScript吗? 当您切换回浏览器以某种方式清除不良状态时,可能会触发事件?
它与切换应用程序无关。 也许您的浏览器在焦点丢失/获得时会更新某些内容。
您遇到问题的原因是:
在第一个请求中,您加载一个对象并将其存储在会话中。 该对象包含某种集合。
在下一个请求中,您尝试对集合进行操作,但是忘记首先调用session.refresh(object)
。
当第一个请求完成时,会话将自动关闭。 但是,对象中支持的集合仍包含对其的引用(以便在您首次访问它时可以自动加载它)。
您的页面是否完成了渲染? 我发现有时收到错误时,服务器不显示错误,而是简单地退出产生输出。 它将错误输出到日志,仅此而已。 我最后完成了一半的页面。 查看源代码,看看是否走到了尽头,也许是切换导致服务器变得懒惰,或者浏览器在发生错误时过早终止了连接
我的建议是进行单元测试,以查看是否可以在与浏览器隔离的其他环境中重现错误;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.