【发布时间】:2010-05-29 18:28:19
【问题描述】:
我正在处理一个遗留 Java 应用程序,其中包含一个庞大且相当混乱的代码库。有一个相当标准的“用户”对象存储在请求之间的 HttpSession 中,因此 servlet 在顶部执行以下操作:
HttpSession session = request.getSession(true);
User user = (User)session.getAttribute("User");
旧的用户身份验证层(我不会描述;我只想说,它没有使用数据库)正在替换为通过 Hibernate 映射到数据库的代码。所以“用户”现在是一个 Hibernate 实体。
我对 Hibernate 对象生命周期的理解有点模糊,但现在将 'User' 存储在 HttpSession 中似乎成为一个问题,因为它将在下一次请求期间在不同的事务中检索。在这里做什么是正确的?下次我可以使用 Hibernate Session 对象的 update() 方法重新附加 User 实例吗?我需要吗?
【问题讨论】:
标签: java hibernate servlets lifecycle