我使用Spring 3和Hibernate 3.6开发Web应用程序 - 我很新,我想知道我是否真的理解会话是如何工作的。
是否正确,由会话ID标识的服务器和客户端之间的会话与休眠会话不同?
服务器和客户端之间的会话始终是HttpSession。(?)什么时候创建?当用户登录时,或者当匿名用户请求页面时(不受保护)?
httpsession和hibernate-sessions之间有什么联系吗?是否由sessionfactory创建的Hibernate会话与httpsession没有连接?我不确定hibernate使用这样的命令引用哪个会话:
this.sessionFactory.getCurrentSession().save(object);
这个getCurrentSession()
:这个休眠会话活动了多长时间?用户登录的整个时间?或仅用于一个事务(可以包括多个数据操作?)
我很抱歉这个问题可能很容易回答,但大多数文件都是英文的,如果不是,那么母语理解有时很难(主要是因为经常使用“会话”这个词)
感谢您帮助我理解这个话题! : - )
答案 0 :(得分:6)
是不是正确的,Sessions 在服务器和客户端之间,确定 通过会话ID,不同于 休眠会议?
是的,完全不同。
参考:(javax.servlet)HttpSession
,(Hibernate)Session
服务器和客户端之间的会话 总是一个HttpSession。(?)什么时候 产生的?用户登录时或也是 当匿名用户请求页面时 (没有保障)?
参见 Java EE Tutorial > Maintaining Client State
之间是否存在任何联系 httpsession和hibernate-sessions?
不,虽然OpenSessionInViewFilter
可以确保每个HTTP请求都有一个Hibernate Session
(每个请求一个Hibernate会话,而不是每个Web会话)。
是否创建了Hibernate会话 sessionfactory没有连接到 HttpSession的?
是的,通常。
我不确定是哪一个 session hibernate引用了一个 像这样的命令: “this.sessionFactory.getCurrentSession()保存(对象);”
休眠Session
这个“getCurrentSession()”:如何 这个hibernate会话有效吗? 用户记录的整个时间 在?或仅用于一次交易(其中 可以包括多个数据操作?)