spring事务的回滚

首先事务不是spring独有的,这是数据库的标准,

事务:就是说好比你操作a,b,c三张表,操作了前2张表没问题,数据已经发生了改变,但是到第

三张表的时候出了问题,这时候你想撤销a,b2张表的操作,以保证数据的一致性,这时候就要用事务的回滚,

spring的事务回滚,当且仅当捕获到RuntimeException类型异常的时,才会出现回滚,对普通的 Exception异常无效

以下是我service层捕获异常,并抛出RuntimeException异常到Action层

public void lock(string id) throws RuntimeException{

try{

this.loginUserDao.lock(id);

LoginUser user=this.loginUserDao.findById(id);

user.setSex("捕获到异常,抛出RuntimeException类型异常");

this,loginUserDao.save(user);

}catch(Exception e){

throw new RuntimeException(e.getMessage());


}

}

spring中的配置

  • <!-- 为sessionFactory定义事务管理器 -->  
  • <bean id="transactionManager"  
  •     class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  •     <property name="sessionFactory">  
  •         <ref local="sessionFactory" />  
  •     </property>  
  • </bean>  
  • <!-- 定义事务拦截器 -->  
  • <bean id="transactionInterceptor"  
  •     class="org.springframework.transaction.interceptor.TransactionInterceptor">  
  •     <!-- 为事务拦截器注入一个事务管理器 -->  
  •     <property name="transactionManager" ref="transactionManager" />  
  •     <property name="transactionAttributes">  
  •         <!-- 定义事务传播属性 PROPAGATION_REQUIRED:表示如果事务不存在,则创建一个新事务,如果存在,则加入到该事务。 -->  
  •         <props>  
  •             <prop key="save*">PROPAGATION_REQUIRED</prop>  
  •             <prop key="add*">PROPAGATION_REQUIRED</prop>  
  •             <prop key="delete*">PROPAGATION_REQUIRED</prop>  
  •             <prop key="update*">PROPAGATION_REQUIRED</prop>  
  •             <prop key="lock*">PROPAGATION_REQUIRED</prop>  
  •             <prop key="unLock*">PROPAGATION_REQUIRED</prop>  
  •             <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>  
  •             <prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>  
  •             <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>  
  •             <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>  
  •         </props>  
  •     </property>  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值