Spring事务的传播行为
程序员文章站
2022-05-06 21:42:41
...
一:事务的传播属性
- 当事务方法被另一个事务方法调用时,必须指定事务如何传播。例如:方法可能继续在现有事务中执行,也可能开启一个新的事务,并在自己的事务中运行。
- 事务的传播行为是由传播属性指定,spring定义了七种类的传播行为。
二:实现代码
package com.dhx.tx;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Service
public class BookShopServiceImpl implements BookShopService{
@Autowired
private BookShopDao bookShopDao;
//添加事务注解
/*
* 使用propagation来指定事务的传播行为,即当前事务被另一个事务方法调用时
* 如何使用事务,默认取值为REQUIRED,即使用调用方法的事务
* REQUIRES_NEW:事务自己的事务,即调用方法的事务被挂起
*/
@Transactional(propagation=Propagation.REQUIRES_NEW)
@Override
public void purchase(String username, String isbn) {
// 获取书的单价
int price=bookShopDao.findBookPriceByIsbn(isbn);
//书的库存减一
bookShopDao.updateBookStock(isbn);
//更新用户余额
bookShopDao.updateAccount(username, price);
}
}
上一篇: 深度优先搜索、快慢指针:力扣109. 有序链表转换二叉搜索树
下一篇: 数据结构与算法9——双向链表