Spring事务的传播行为

  作者:记性不好的阁主

Spring事务的传播行为


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

用户账户表(账户balance为无符号类型)




图书信息表



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




付款




结果:两个都不成功

用户账户表(账户balance为无符号类型)




图书信息表



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




付款




结果:第一次成功付款,第二次付款失败

用户账户表(账户balance为无符号类型)




图书信息表





相关推荐

评论 抢沙发

表情

分类选择