Spring事务控制

/**

用别名方法B代替
* 逆向 写入商品明细
* @param orderId
* @param applymentId
* @param invoiceAmount
*/
@ Transactional (rollbackFor = Exception.class)
public void handleReverseAccountSales(Long orderId,Long applymentId,Long invoiceAmount){
//写入一条数据
}

/**
用别名方法C代替
*正向 写入商品明细
* @param orderId
* @param userId
* @param invoiceAmount
*/
@ Transactional (rollbackFor = Exception.class)
public void handlePositiveAccountSales(Long orderId,Long userId,Long invoiceAmount){
//更新已经写的数据
}

/**
* 用别名方法A代替
* @param orderNo
* @return
* @throws InterruptedException
*/
public Boolean batchHandleAccountSales(Long orderNo) throws InterruptedException {
...
handlePositiveAccountSales();
handleReverseAccountSales()
...
}

1、首先在方法A没有加事务,B加了事务 C加了事务 方法C出现异常会回滚,方法B是执行成功的 事务之间不干扰

2、首先在方法A没有加事务,B没有加事务 C加了事务 方法C出现异常会回滚,方法B是执行成功的

3、如果在方法A上加了事务 方法C出现异常会回滚,此时方法B是也没有执行成功的

4、同上2 如果在方法A上加了事务 方法B和C没有加事务 方法C出现异常 方法B是也没有执行成功的 因为都是在整个事务体系里






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值