Spring + Hibernate 多个线程中的会话管理
我创建一个系统,其中每个客户端的请求在服务器端生成多个流。 然后每个线程都使用一个或多个 DAOs /一些 DAOs 可以同时使用多个流/. 全部 DAOs 进入 /
/ 在我的流课程中 Spring. 每个 DAO 也得到了
注射。
管理会话的正确方法是什么 Hibernate 通过这几个人 DAOs, 因此,由于多线程环境,我不会遇到问题 /例如,几个 DAOs 来自不同的流尝试同时使用相同的会话/?
我指出的是足够的
在配置中 Hibernate, 然后每次都在 DAO 刚用过
执行这项工作? 根据需要会对每个流进行适当检测到并创建会话吗?
@Autowired
/ 在我的流课程中 Spring. 每个 DAO 也得到了
SessionFactory
注射。
管理会话的正确方法是什么 Hibernate 通过这几个人 DAOs, 因此,由于多线程环境,我不会遇到问题 /例如,几个 DAOs 来自不同的流尝试同时使用相同的会话/?
我指出的是足够的
hibernate.current_session_context_class=thread
在配置中 Hibernate, 然后每次都在 DAO 刚用过
SessionFactory.getCurrentSession//
执行这项工作? 根据需要会对每个流进行适当检测到并创建会话吗?
没有找到相关结果
已邀请:
1 个回复
窦买办
赞同来自:
设置值时
在
会议退回
, 来自实例
.
每个线程都有自己的独立实例
, 因此,不同的流将无法访问相同的会话。 hibernate .
行为
这是:如果在当前流中第一次调用它,则打开新会话并返回 . 如果在同一线程中再次调用,则将返回相同的会话。
因此,您可以获得相同的会话以用于不同的方法。 DAO 在相同的交易代码中,简单地造成
. 它不允许您转移会话 Hibernate 通过方法的输入参数 DAO 如果您必须调用许多不同的方法。 DAO 在相同的交易代码中 .