在生产中使用Hibernate“线程”会话上下文

时间:2016-01-18 16:06:47

标签: java hibernate

来自jboss.org上的Hibernate教程的

This page说:

  

Hibernate提供了三种当前会话跟踪方法。基于“线程”的方法不适用于生产用途;它仅适用于原型设计和教程,例如本教程。

我无法找到任何其他指明这种或那种方式的来源。 这是真的?如果是这样,为什么,Hibernate 4.x仍然如此?什么上下文会话用于生产?

1 个答案:

答案 0 :(得分:1)

Hibernate支持这些会话管理选项:

  • (jta)org.hibernate.context.JTASessionContext:当前会话由JTA事务跟踪和确定范围。此处的处理与旧的仅JTA方法完全相同。
  • (thread)org.hibernate.context.ThreadLocalSessionContext:当前会话由执行线程跟踪。
  • (托管)org.hibernate.context.ManagedSessionContext:当前会话由执行线程跟踪。但是,您有责任使用此类上的静态方法绑定和取消绑定Session实例:它不会打开,刷新或关闭会话。

请参阅:http://docs.jboss.org/hibernate/orm/5.0/userGuide/en-US/html_single/#architecture-current-session

直接使用Hibernate的旧实现经常使用“每会话线程”模型,即使现在不推荐它们。