我是hibernate的新手,我在使用getCurrentSession()和openSession()检索会话时有点困惑,许多文章提到getCurrentSession创建一个全新的会话(如果尚未存在)并且如果没有创建新会话会话已经可用,另一方面,openSession创建了一个全新的会话。
如果我犯了任何错误,请你帮我澄清一下并道歉
非常感谢
答案 0 :(得分:1)
openSession()
将会话绑定到当前上下文。默认上下文为Thread
,也可以使用自定义过滤器或OpenSessionInViewFilter
HttpRequest
级别
getCurrentSession()
,就会打开会话。之后,为了找到已经存在的会话,Hibernate使用CurrentSessionContext
来确定当前上下文,并将返回绑定到该特定上下文的会话。大多数应用程序服务器将会话与使用基础Thread
对象创建的ThreadLocal
相关联。