spring 事务整理
博客专区 > IvE 的博客 > 博客详情
spring 事务整理
IvE 发表于3年前
spring 事务整理
  • 发表于 3年前
  • 阅读 114
  • 收藏 6
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: SPRING 事务

首先 Spring 的事物分为7种,如下:



ROPAGATION_REQUIRED -- 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS -- 支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY -- 支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW -- 新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED -- 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER -- 以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED -- 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。


ROPAGATION_REQUIRED:最常用的事务,如果外部事务也是ROPAGATION_REQUIRED的话,感觉它们更像是组成了一条线,简单的说 就是外部事务没有的时候 他就建立一个新事务;如果外部事务存在的时候,他就加入外部事务


PROPAGATION_NESTED :这个简单的说就是  如果PROPAGATION_NESTED已经在一个事务中,那么在它将嵌套在这个事务中执行,这个时候PROPAGATION_NESTED事务是外部事务的一个子事务,当PROPAGATION_NESTED事务开始执行的时候,会设立一个save point,当这个PROPAGATION_NESTED事务失败 ,事务将会滚到这个save point点,在外部事务提交和回滚的时候会随着外部事务一起提交或着回滚; 如果外部不存在事务就跟ROPAGATION_REQUIRED一样


PROPAGATION_REQUIRES_NEW当前已经存在事务 那么新建一个单独的事务,是一个完整的事务,这个事务独立于外部事务自己的commit,rollback 不受外部事务的影响,当它开始运行时 外部事务将挂起。内部事务结束 外部事务继续执行。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 3
博文 3
码字总数 1314
×
IvE
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: