您的位置:首页 > 房产 > 建筑 > 上海网站制作网站_宁阳房产网_百度榜单_什么是搜索引擎优化seo

上海网站制作网站_宁阳房产网_百度榜单_什么是搜索引擎优化seo

2025/2/23 23:03:16 来源:https://blog.csdn.net/m0_74166099/article/details/144038211  浏览:    关键词:上海网站制作网站_宁阳房产网_百度榜单_什么是搜索引擎优化seo
上海网站制作网站_宁阳房产网_百度榜单_什么是搜索引擎优化seo

事务传播行为,指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何运行。

比如事务a方法调用事务b方法,b是继续在调用者a的事务中运行呢?还是为自己另开一个新事物运行?这就是由b的事务传播行为决定的。

Spring事务传播行为一共有七种:

1.REQUIRED

它是默认传播行为,支持当前事务,如果当前没有事务,就新建一个事务,不管有几个事务存在,都合并成一个事务来处理,只要有一个事务抛出异常,所有事务都会回滚。

A方法和B方法都有事务,A方法调用B方法,A的事务会传递给B,使它们共用同一个事务。

2.SUPPORTS

如果存在一个事务,支持当前事务,如果没有事务,则非事务执行。

a方法有事务,b就用a的事务,a方法没有事务,b就用非事务的执行代码。

3.REQUIRES_NEW

开启一个新的事务,如果一个事务已经存在,则先将这个存在的事务挂起

a方法调用b方法,b会开启一个新的事务来执行代码,此时a需要先挂起当前事务,等待b事务执行完毕再重新开启a方法事务。

4.MANDATORY

如果已经存在一个事务,支持当前事务,如果没有一个活动的事务,则抛出异常

a方法有事务,a,b就共用a的事务,如果controller直接调用b方法且b没有事务,则b会抛出异常

5.NOT_SUPPORTED

总是非事务的执行,并且挂起任何存在的事务

a方法调用b方法,b会非事务的执行代码,此时a需要先挂起事务等待b执行完代码再重新开启a事务。

6.NEVER

总是非事务地执行,不加入任何事务,如果存在一个活动事务,则抛出异常

方法b总是非事务的执行代码,如果a方法有事务且调用b方法,则b会抛出异常。

7.NESTED

如果一个活动事务存在,则运行在一个嵌套的事务中,如果没有活动事务,则按照REQUIRED属性执行。

如果方法a调用方法b且a有事务,方法a代码抛异常,则a,b都会回滚事务,如果a没有事务,新建一个事务,但此时b代码抛出异常,只有b事务回滚。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com