Java Alt+修复了休眠异常;标签
我在Hibernate中遇到了一个非常奇怪的问题,我想听听大家的意见。在我的代码中,如果我执行以下操作:Java Alt+修复了休眠异常;标签,java,hibernate,Java,Hibernate,我在Hibernate中遇到了一个非常奇怪的问题,我想听听大家的意见。在我的代码中,如果我执行以下操作: 转到A页 单击a页上的链接可转到B页 单击B页上的数据项 抛出异常 我得到一个错误,告诉我: failed to lazily initialize a collection of role: XYZ, no session or session was closed 很公平。但是当我做同样的事情,但是在中间添加一个ALT+标签,一切都很好。例如 转到A页 单击a页上的链接可转到B页
- 转到A页
- 单击a页上的链接可转到B页
- 单击B页上的数据项
- 抛出异常
failed to lazily initialize a collection of role: XYZ, no session or session was closed
很公平。但是当我做同样的事情,但是在中间添加一个ALT+标签,一切都很好。例如
- 转到A页
- 单击a页上的链接可转到B页
- 点击ALt+Tab切换到其他应用程序
- 点击ALt+Tab切换回web浏览器
- 单击B页上的数据项
- 一切都很好
这是一个使用Hibernate 3.3.2.GA和3.4.0.GA的Seam应用程序。您使用的是javascript吗?当您切换回浏览器时,可能会触发一个事件,以某种方式清除坏状态?这与切换应用程序无关;也许你的浏览器在焦点丢失/获得期间更新了一些内容 您的问题的原因是:
会话。刷新(对象)
当第一个请求完成时,会话会自动关闭。但是对象中的备份集合仍然包含对它的引用(这样,当您第一次访问它时,它可以自动加载)。您的页面是否完成了它的呈现?我发现,有时当我收到错误时,服务器不显示错误,而只是停止生成输出。它将错误输出到日志,但仅此而已。最后,我完成了一半的页面。查看源代码并查看是否到达正文的末尾,可能是您的切换导致服务器变懒,或者是您的浏览器在错误发生时过早终止连接我的建议是进行单元测试,看看是否可以在与浏览器隔离的其他环境中重现错误;) 据我所知,聚焦方面没有任何变化。我唯一更改的是将以下内容添加到页面上的表中:Last Login Date和调用的函数只是对我以前经常使用的数据库执行常规查询