@Transactional失效引发的spring事务相关

spring事务:
1、编程式事务管理(在代码中手动开始,提交,关闭事务)比较灵活
2、声明式事务管理(1,基于xml;2基于注解@Transactional)(基于spring的AOP动态代理)
项目里面主要使用注解@Transactional实现事务管理:
  事务传播行为:7个
    PROPAGATION_REQUIRED默认:当前有事务加入当前事务,否则创建新事务
    PROPAGATION_REQUIRED_NEW:创建自己新事务,当前有事务则挂起当前事务
    PROPAGATION_NESTED:使用嵌套事务,开启自己独立的事务
  事务隔离级别:
    读未提交(脏读,可重复读,幻读,);
    读已提交(可重复读,幻读)
    可重复读(幻读)
    串行化
    默认和数据库保持一致,有设置的话优先级用spring设置
  事务失效场景:
①异常被捕获,未做处理
②在同一个类里,会导致事务失效,因为AOP是代理模式,需要注意的是失效的是被调用方法, 但是调用方事务不受影响,仍可加入
③事务在多线程中被调用
④事务传播行为设置不加入
⑤异常级别未设置,抛出了受检查异常,默认是只回滚runtimeException类的异常
⑥不是公有方法
⑦final和static方法
⑧数据库引擎不支持事务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值