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

tec*_*uri 5 hibernate

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

tol*_*ius 9

将Hibernate Contextual Session视为当前Session到用户Context的映射.

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

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

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

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

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

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