org.hibernate.context.JTASessionContext
和org.hibernate.context.ThreadLocalSessionContex
有什么区别?
最佳答案
使用ThreadLocalSessionContext
创建当前会话(sessionFactory.getCurrentSession()
)并将其存储在ThreadLocal
中。这在任何环境中都可以使用,因为ThreadLocal
是JavaSE。
JTASessionContext将当前会话绑定到JTA事务。与线程本地线程不同,JTA事务为清理提供了一个钩子。在具有JTA的环境(例如应用程序服务器)中可用。
这两个类的javadocs中对此进行了解释。
here和here