一. 知识储备
1.1 事务的传播行为
/**
* propagation:事务的传播行为。事务是可以传播的。一个事务方法被另外一个事务方法调用时,当前的事务方法如何使用事务
* REQUIRES_NEW:将调用者的事务挂起,开启新的事务
* REQUIRED(默认值):使用调用者的事务
*/
@Transactional(
propagation = Propagation.REQUIRED
)//只对当前方法起作用
@Override
public void buyBook(String username, String isbn) {
// TODO Auto-generated method stub
//1.查书价格
Integer price = bookShopDao.getPriceByIsbn(isbn);
//2. 改书库存
bookShopDao.updateBookStock(isbn);
//3. 改用户余额
bookShopDao.updateAccount(username, price);
}