什么是hibernate中的上下文会话?

时间:2011-10-24 04:44:11

标签: hibernate

  1. Hibernate中的上下文会话是什么?
  2. 当我在使用上下文会话实现接口之间创建和关闭会话时?

2 个答案:

答案 0 :(得分:9)

将Hibernate的Contextual Session视为当前Session与用户Context的映射。

例如:单个事务可能就是这样的上下文,因此如果Hibernate Session的生命周期与此事务的生命周期相匹配,则Session可以称为上下文,其中单个事务定义了这样的context。有时,这种特殊情况被标记为session-per-request模型。

Hibernate接口CurrentSessionContext用于将当前会话(例如SessionFactory.getCurrentSession())映射到不同的上下文。该接口有3个实现:

  • JTASessionContext:当前会话由JTA事务跟踪和确定范围。此处的处理与旧的仅JTA方法完全相同。有关详细信息,请参阅Javadocs。

  • ThreadLocalSessionContext:当前会话由执行线程跟踪。有关详细信息,请参阅Javadocs。

  • ManagedSessionContext:当前会话由执行线程跟踪。但是,您有责任使用此类上的静态方法绑定和取消绑定Session实例:它不会打开,刷新或关闭会话

查看Hibernate文档的Architecture Current Session部分,了解更多“官方”详细信息。

答案 1 :(得分:1)

另一个非常好的链接,解释了Hibernate Contextual Session的概念

http://relation.to/2037.lace