通过SessionFactory.getCurrentSession()
获取Hibernate会话是否安全?
假设我有一个static SessionFactory
对象用于我的整个应用程序,我有5个并发请求发送到我的servlet。我的servlet为每个请求调用方法Auth.checkLogin()
,Auth.checkLogin()
依次通过静态factory.getCurrentSession()
获取会话。
在我的servlet的每个请求结束时,transaction.commit()
上的session
被调用。
我的问题是,这是一种线程安全的方法吗?或者我应该做出任何改变吗?
答案 0 :(得分:1)
是。 SessionFactory是不可变的,因此线程安全。
答案 1 :(得分:1)
来自Hibernate 4.0 SessionFactory
这里的主要合同是创建Session实例。的一般 应用程序具有单个SessionFactory实例和线程 服务客户端请求从该工厂获取Session实例。
SessionFactory的内部状态是不可变的。一旦它 创建此内部状态已设置。这个内部状态包括所有 关于对象/关系映射的元数据。
实施者必须是线程安全的。
那么
通过线程获取Hibernate会话是否安全 SessionFactory.getCurrentSession()?
对于api说什么,然后是。