Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hibernate JTASessionContext与ThreadLocalSessionContext_Java_Hibernate - Fatal编程技术网

Java hibernate JTASessionContext与ThreadLocalSessionContext

Java hibernate JTASessionContext与ThreadLocalSessionContext,java,hibernate,Java,Hibernate,org.hibernate.context.JTASessionContext和org.hibernate.context.ThreadLocalSessionContex之间有什么区别?这些策略通过定义当前会话的范围来控制SessionFactory.getCurrentSession()的行为 JTASessionContext将当前会话与当前JTA事务关联,并在JTA事务结束时将其关闭。此策略用于支持JTA的环境,即应用服务器 ThreadLocalSessionContext将当前会话

org.hibernate.context.JTASessionContext
org.hibernate.context.ThreadLocalSessionContex
之间有什么区别?

这些策略通过定义当前会话的范围来控制
SessionFactory.getCurrentSession()
的行为

  • JTASessionContext
    将当前会话与当前JTA事务关联,并在JTA事务结束时将其关闭。此策略用于支持JTA的环境,即应用服务器
  • ThreadLocalSessionContext
    将当前会话与当前线程关联,并在该会话中创建的事务结束时将其关闭。它用于独立环境
顺便说一下,javadoc和reference对它的描述非常清楚

另请参见:


使用
ThreadLocalSessionContext
,当前会话(
sessionFactory.getCurrentSession()
)被创建并存储在
ThreadLocal
中。这适用于任何环境,因为
ThreadLocal
是JavaSE

JTASessionContext将当前会话绑定到JTA事务。JTA事务提供了一个用于清理的钩子,与本地线程不同。这在具有JTA的环境中可用,例如应用程序服务器

这一切都在这两个类的javadocs中进行了解释。

任何描述该用法的示例??