HttpSession失效时Hibernate更新数据库

时间:2015-09-24 19:10:16

标签: java hibernate session

我有一个使用Hibernate访问MySQL数据库的Struts2 webapp。当用户登录时,我使用Hibernate来检索“用户”和“公司”对象,每个对象都在他们自己的Hibernate会话中,该会话立即关闭。然后将这两个对象存储为HttpSession个变量,以便它们可用于后续操作。

当用户退出时,我致电:

HttpServletRequest.getSession(false).invalidate();

清理用户浏览器/ HTTP会话。但是,作为此调用的结果,我看到Hibernate正在更新User对象,但它没有更新Company对象。

这些对象都没有在内存中更改,那么为什么Hibernate会更新它?为什么一个而不是另一个?

1 个答案:

答案 0 :(得分:0)

好的,我的坏。我继承了这段代码,刚刚找到了一个SessionListener,它正在对User表进行更新,以便有效地将它们注销掉。调用'invalidate()'调用Hibernate看起来很奇怪......但我猜这就是SessionListeners的用途!

...没关系