spring声明试或注解事物不会滚问题解决

1.什么是Spring 注解事物:就是直接在Service层的方法上面加上@Transactional注解。

   什么是声明试事物:就是使用spring 的AOP配置事物。

2.事物不回滚通常是出现在注解事物或声明式事物,编程式事务一般需要手写回滚 通常不会出问题。

3.常见的事物不会滚通常有以下几种情况:

  3.1声明试事物配置的切入点表达式错误,没有切入service中的方法。

  3.2service方法中进行了异常捕获,try catch 后只是打印了异常信息没有再抛出

throw new RuntimeException(e)。spring 事物混回滚默认是运行时异常才回滚(RuntimeException)。

  3.3 service方法抛出的异常不是运行时异常例如Exception,事物也不会回滚,事物回滚默认是运行时异常(RuntimeException)。

4.如何解决这种问题

  4.1 声明试事物:spring AOP的情况

        在配置中增加回滚条件你自己可以定义:

<tx:method name="update*" propagation="REQUIRED" rollback-for="java.lang.Exception"/> 

  4.2注解式事物:@Transactional

@Transactional(rollbackFor=Exception.class)

 4.3 什么也不修改 在 catch中增加throw new RuntimeException(e)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值