全部在标题中
我对如何使用sessionFactory.getCurrentSession()
感到困惑。
在我的web-app中,创建多线程以保存数据库中的消息,并且在创建每个线程时,我从未使用openSession()
方法,所有Daos
都使用{{1 }}。到目前为止,它的工作正常。
并且没有配置getCurrentSession()
。那么hibernate是否会为此线程生成一个新会话,如果不是这个CurrentSessionContext
?
更新
是的我正在使用Spring 3.1。
Tomcat6(作为Eclipse中的插件和Linux机器上的真实服务器,该应用程序可在两台服务器上运行)
答案 0 :(得分:2)
Spring HibernateTransactionManager将当前会话绑定到活动事务,允许getCurrentSession()
返回与正在进行的Spring事务关联的会话:
单个Hibernate SessionFactory的PlatformTransactionManager实现。将Hibernate会话从指定的工厂绑定到线程,可能允许每个工厂一个线程绑定的Session。 SessionFactory.getCurrentSession()是需要支持此事务处理机制的Hibernate访问代码所必需的,SessionFactory是使用SpringSessionContext配置的。