请问seata中,下列改成什么合适?

请问seata中,下列改成什么合适? Seata 默认使用 REQUIRED 传播行为,即如果当前方法已经存在一个全局事务上下文,则加入该事务,否则创建新的事务。

如果你想更改事务的传播行为,可以使用 @GlobalTransactional 注解的 propagation 属性。例如,假设你想把传播行为更改为 REQUIRES_NEW:

java @GlobalTransactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW) public void yourMethod() { // 业务逻辑代码 } 在上面的示例中,通过将 propagation 属性设置为 Propagation.REQUIRES_NEW,该方法将始终创建一个新的事务。

常用的事务传播行为包括:

REQUIRED:如果当前方法已经存在一个事务上下文,则加入该事务;否则创建新的事务。 REQUIRES_NEW:始终创建一个新的事务。 SUPPORTS:如果当前方法已经存在一个事务上下文,则加入该事务;否则以非事务方法执行。 NOT_SUPPORTED:以非事务方法执行,如果当前方法存在事务上下文,则将其暂停。 NEVER:以非事务方法执行,如果当前方法存在事务上下文,则抛出异常。 你可以根据具体的业务需求选择适合的传播行为。 这个吗? ef95ac3d14be84a002180bad6cce0a21.png

展开
收起
十一0204 2023-06-28 13:01:22 105 分享 版权
2 条回答
写回答
取消 提交回答
  • 意中人就是我呀!

    propagation=Propagation.NOT_SUPPORTED 你先看看Spring事务传播机制。 此回答整理自钉群“Seata(分布式事务)”

    2023-06-28 13:35:25
    赞同 展开评论
  • 资深技术专家。主攻技术开发,擅长分享、写文、测评。

    如果想更改Seata中的事务传播行为,默认的REQUIRED传播行为可以根据您的需求改成以下几种合适的选项:

    REQUIRES_NEW(创建新事务):不管当前方法是否存在全局事务上下文,都创建一个新的事务。如果当前存在全局事务,会挂起该事务,并在方法执行完毕后恢复。

    SUPPORTS(支持事务):如果当前存在全局事务上下文,则加入该事务;如果没有事务上下文,则以非事务方式执行。

    NOT_SUPPORTED(不支持事务):不管当前是否存在全局事务上下文,都以非事务方式执行。如果当前存在事务,则挂起该事务。

    2023-06-28 13:29:20
    赞同 展开评论
问答分类:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理