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