SpringBoot中事务传播特性的使用

REQUIRED : 使用当前的事务 ,如果当前没有事务 ,则自己新建一个事务 ,子方法是必须运行在一个事务中的 ; 如果当前存在事务 , 则加入这个事务 , 成为一个整体 一般用于增删改

SUPPORTS: 如果当前有事务 , 则使用事务 ,如果当前没有事务 ,则不使用事务 适用于查询

MANDATORY : 该传播属性强制必须存在一个事务 ,如果不存在,则抛出异常

REQUIRES_NEW : 如果当前有事务 ,则挂起事务 ,并且自己创建一个新的事务给自己使用; 如果当前没有事务 , 则同required一样

NOT_SUPPORTED :如果当前有事务 ,则把事务挂起 ,自己不使用事务去运行数据库操作

NEVER : 如果当前有事务存在 ,则抛出异常

NESTED : 如果当前有事务,则开启子事务(嵌套事务), 嵌套事务是独立提交或者回滚的 ;

如果当前没有事务 ,则同required ;

但是如果主事务提交,则会携带子事务一起提交

如果主事务回滚 ,则子事务会一起回滚 , 相反 , 子事务异常 , 则父事务可以回滚或不回滚

使用事务的传播如下 ,也就是把上面的单词依次换成你想要使用的即可 :

@Transactional(propagation = Propagation.SUPPORTS)
public Stu findStu(int id) {
    return stuMapper.selectByPrimaryKey(id);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值