加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Spring如何管理休眠会话生命周期

发布时间:2020-12-15 01:21:16 所属栏目:大数据 来源:网络整理
导读:Spring用于我们团队的Java EE项目,而hibernate用于基础ORM. transactionManager的设置如下: bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"property name="sessionFactory" ref="sessionFactory" /

Spring用于我们团队的Java EE项目,而hibernate用于基础ORM.

transactionManager的设置如下:

<bean id="transactionManager"  class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean> 

sessionFactory的设置如下:

<bean id="sessionFactory"  class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan"
value="com.company.model" />
<property name="hibernateProperties">

<value>
hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
hibernate.show_sql=true
hibernate.jdbc.fetch_size=50
</value>
</property>
</bean>

我的问题是考虑了整个设置,我没有看到休眠会话生命周期的任何属性设置.在休眠参考中,引入了上下文会话,并说有CurrentSessionContext的三种实现.

> JTA 2.Thread 3.托管

我怎么知道使用了哪种实现?也许在Spring之前,但我不知道.

最佳答案
Spring使用给定的dataSource创建SessionFactory,并从连接池中获取其数据库连接.我们通过SessionFactory.getCurrentSession()获得一个Hibernate会话.然后开始事务,执行工作,然后执行commit()或rollback(),最后关闭连接(连接对象将返回到池中).当我们停止应用程序或关闭服务器时,Hibernate会话工厂将被破坏/关闭.并且默认情况下,如果使用HibernateTransactionManager,将使用CurrentSessionContext的Thread实现.如果要使用jta实现,则必须使用“ JtaTransactionManager”作为事务管理器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读