日期:2014-05-19  浏览次数:20780 次

hibernagte的session 和 getRequest().getSession()的是一样的吗
hibernagte的session 和 getRequest().getSession()的session 是一样的吗
 我用getRequest().getSession().invalidate(); 会吧hibernate 的session 也清掉吗

------解决方案--------------------
hibernagte的session是hibernate中使用的类型
public interface Session
而getRequest().getSession()得到的是httpSession,两者类型和含义用途均不一样。
清理httpSession不会关联删除Hibernate中的session,除非调用自身的close方法。
------解决方案--------------------
其实有相同,有不同。Request获取的session是你的从服务器获取一次会话的session,而hibernate的session是与数据库连接的session,接口中有很多数据库操作的方法。
还有,session包位置不同,Request的全称是HttpSession肯定处理http请求的。hibernate中的session肯定和数据持久化有关。
相同的是,他们底层都涉及了一定的通信机制。
------解决方案--------------------
hibernate session是数据库缓存,,
------解决方案--------------------
getRequest().getSession().invalidate();改为
getRequest().getSession(false).invalidate();