本文单纯为方便自己快速查看,基本引自IT虾米网

最常用的属性是1和4。

1.PROPAGATION_REQUIRED

如果事务存在,则支持当前事务,如果没有事务则开启一个新事务。

2.PROPAGATION_SUPPORTS

如果存在事务,则支持当前事务,如果不存在,则以非事务方式执行。

3.PROPAGATION_MANDATORY

如果存在事务,则支持当前事务,如果不存在,则抛出异常。

4.PROPAGATION_REQUIRES_NEW

无论是否存在事务,都会创建一个新事务执行。如果之前有事务,则会被挂起,直到它结束才会继续执行,两个事务相互独立。

5.PROPAGATION_NOT_SUPPORTED

无论是否存在事务,都会以非事务方式执行。如果之前有事务,则会被挂起,直到它结束才会继续执行。

6.PROPAGATION_NEVER

不支持事务,如果存在一个活动事务,则会抛出异常

7.PROPAGATION_NESTED

嵌套事务。
不存在事务时相当于PROPAGATION_REQUIRED,会创建一个新事物。
存在事务时,外层事务失败回滚会导致内层回滚,而内层事务操作失败不会引起外层事务回滚。

PROPAGATION_NESTED 与PROPAGATION_REQUIRES_NEW的区别

不存在活动事务时,都相当于PROPAGATION_REQUIRED。
存在活动事务时,PROPAGATION_REQUIRES_NEW相当于存在两个独立的事务,互不影响,而PROPAGATION_NESTED则是外层会影响内层事务,内层不会影响外层

发布评论
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

[leetcode]9.回文数讲解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。