Spring事务传播机制理解

REQUIRED:如果当前没有事务,则自己新建一个事务,如果当前存在事务,则加入这个事务。
REQUIRES_NEW:主事务和里面的事务独。
SUPPORTS:当前存在事务,则加入当前事务,如果当前没有事务,就以非事务方法执行。
NOT_SUPPORTED:不论当前是否存在事务,都会以非事务的方式运行。
MANDATORY:当前存在事务,则加入当前事务,如果当前事务不存在,则抛出异常。
NEVER:不使用事务,如果当前事务存在,则抛出异常。
NESTED:如果当前事务存在,则在嵌套事务中执行,否则REQUIRED的操作一样(开启一个事务)

 

NESTED和REQUIRED的区别
REQUIRED情况下,调用方存在事务时,则被调用方和调用方使用同一事务,那么被调用方出现异常时,由于共用一个事务,所以无论调用方是否catch其异常,事务都会回滚
而在NESTED情况下,被调用方发生异常时,调用方可以catch其异常,这样只有子事务回滚,父事务不受影响

posted @   Materben  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示