- 什么是Hibernate中的上下文会话
- 当我在两个会话之间创建和关闭会话时,是否使用上下文会话实现接口
将Hibernate的Contextual Session
视为当前会话到用户上下文的映射。
例如:单个事务可以是这样的上下文,因此,如果Hibernate会话的生命周期与该事务的生命周期相匹配,则会话可以被称为上下文,其中单个事务定义了这样的context
。有时,这种特殊情况被标记为session-per-request
模型。
Hibernate接口CurrentSessionContext用于将当前会话(例如SessionFactory.getCurrentSession()
(映射到不同的上下文。该接口有3个实现:
-
JTASessionContext:当前会话由JTA事务跟踪和确定范围。这里的处理与旧的仅JTA方法完全相同。有关详细信息,请参阅Javadocs。
-
ThreadLocalSessionContext:当前会话由执行线程跟踪。有关详细信息,请参阅Javadocs。
-
ManagedSessionContext:当前会话由执行线程跟踪。但是,您负责使用此类上的静态方法绑定和解除绑定会话实例:它不会打开、刷新或关闭会话
查看Hibernate文档中的ArchitectureCurrentSession部分,了解更多"官方"细节。
解释Hibernate上下文会话概念的另一个非常好的链接
http://relation.to/2037.lace