Service层进行事务管理,Dao层获得session进行事务处理抛异常的情况

在基于SSH框架的web项目中,通常在Service层配置事务管理以保证业务操作的原子性。本文讨论了当尝试在Dao层直接获取Session并进行事务处理时,遇到的'No Hibernate Session bound to thread'异常。异常原因是Hibernate操作必须在事务范围内进行,即通过Session.beginTransaction()开始,结束时提交或回滚事务。如果不遵循此规则,Hibernate会抛出异常。
摘要由CSDN通过智能技术生成
1.  spirng中配置service层的事务管理

       在一个web项目中,如果使用SSH框架,一般在spring中配置事务管理。我们一般不会在dao层使用transaction,事务被配置在service层上更为合理,因为业务层方法表示逻辑上的一个原子操作。

         spring中配置service层的事务管里,配置文件中的配置如下:

      <bean id="txProxy"   
         class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">   
        <property name="beanNames">    
          <list>        
             <value>*Service</value> //这里表示
          </list>    
        </property>    
        <property name="interceptorNames">    
          <list>    
             <value>transactionInterceptor</value>    
          </list>    
        </property>    
   </bean> 

      <bean id="txManager"
  class="org.spr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值