Spring事务的传播行为
| 事务传播行为类型 | 说明 |
| REQUIRED | 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。spring默认使用此传播类型 |
| REQUIRES_NEW | 新建事务,如果当前存在事务,把当前事务挂起。 |
| SUPPORTS | 支持当前事务,如果当前没有事务,就以非事务方式执行。 |
| NOT_SUPPORTED | 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 |
| MANDATORY | 使用当前的事务,如果当前没有事务,就抛出异常 |
| NEVER | 以非事务方式执行,如果当前存在事务,则抛出异常。 |
| NESTED | 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。 |
用户账户表(账户balance为无符号类型)

图书信息表

一、图书购物车服务层(事务) 默认REQUIRED

付款

结果:两个都不成功
用户账户表(账户balance为无符号类型)

图书信息表

二、图书购物车服务层(事务) REQUIRES_NEW

付款

结果:第一次成功付款,第二次付款失败
用户账户表(账户balance为无符号类型)

图书信息表

Spring事务的传播行为
恭喜注册成功,快来登录吧!