当没有会话时Spring Spring Hibernate getCurrentSession()?

时间:2014-06-24 16:17:54

标签: java spring hibernate

全部在标题中 我对如何使用sessionFactory.getCurrentSession()感到困惑。

在我的web-app中,创建多线程以保存数据库中的消息,并且在创建每个线程时,我从未使用openSession()方法,所有Daos都使用{{1 }}。到目前为止,它的工作正常。

并且没有配置getCurrentSession()。那么hibernate是否会为此线程生成一个新会话,如果不是这个CurrentSessionContext

更新

是的我正在使用Spring 3.1。

Tomcat6(作为Eclipse中的插件和Linux机器上的真实服务器,该应用程序可在两台服务器上运行)

1 个答案:

答案 0 :(得分:2)

Spring HibernateTransactionManager将当前会话绑定到活动事务,允许getCurrentSession()返回与正在进行的Spring事务关联的会话:

  

单个Hibernate SessionFactory的PlatformTransactionManager实现。将Hibernate会话从指定的工厂绑定到线程,可能允许每个工厂一个线程绑定的Session。 SessionFactory.getCurrentSession()是需要支持此事务处理机制的Hibernate访问代码所必需的,SessionFactory是使用SpringSessionContext配置的。