Spring 的事务传播机制有哪些

fiy 其他 6

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Spring的事务传播机制主要有以下几种:

    1. REQUIRED:默认的传播行为。如果当前有事务存在,就在该事务中执行;如果没有事务存在,则创建一个新的事务。
    2. SUPPORTS:如果当前有事务存在,就在该事务中执行;如果没有事务存在,则以非事务方式执行。
    3. MANDATORY:如果当前有事务存在,就在该事务中执行;如果没有事务存在,则抛出异常。
    4. REQUIRES_NEW:每次都会创建一个新的事务,如果当前有事务存在,则挂起原有的事务。
    5. NOT_SUPPORTED:以非事务方式执行,如果当前有事务存在,则挂起原有的事务。
    6. NEVER:以非事务方式执行,如果当前有事务存在,则抛出异常。
    7. NESTED:如果当前有事务存在,则在该事务的嵌套事务中执行;如果没有事务存在,则创建一个新的事务。

    这些事务传播行为可以通过在方法上使用@Transactional注解来指定,也可以在XML配置文件中进行配置。通过合理的使用事务传播机制,可以更好地管理事务的一致性和隔离性。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Spring的事务传播机制有以下几种:

    1. REQUIRED:如果当前方法正在一个事务中运行,那么它将在该事务中运行。否则,它将开启一个新的事务并在自己的事务中运行。

    2. SUPPORTS:如果当前方法正在一个事务中运行,那么它将在该事务中运行。否则,它将在非事务状态下运行。

    3. MANDATORY:如果当前方法正在一个事务中运行,那么它将在该事务中运行。否则,将抛出异常。

    4. REQUIRES_NEW:无论当前方法是否正在一个事务中运行,它都将开启一个新的事务并在自己的事务中运行。如果当前方法正在一个事务中运行,则该事务会被挂起。

    5. NOT_SUPPORTED:无论当前方法是否正在一个事务中运行,它都会在非事务状态下运行。如果当前方法正在一个事务中运行,则该事务会被挂起。

    总结起来,Spring的事务传播机制定义了方法在调用时如何参与到一个已经存在的事务中,或者如何开始一个新的事务。开发人员可以根据具体的业务需求选择合适的事务传播机制,从而控制事务的行为和效果。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Spring 的事务传播机制主要有以下几种:

    1. PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果已经存在事务,则加入到当前事务中。
    2. PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
    3. PROPAGATION_MANDATORY:强制要求当前存在事务,如果当前没有事务,则抛出异常。
    4. PROPAGATION_REQUIRES_NEW:创建一个新事务,如果当前存在事务,就将当前事务挂起。
    5. PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就将当前事务挂起。
    6. PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
    7. PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则创建一个新的事务来执行。

    这些传播机制可以通过在方法上添加@Transactional注解来指定。默认情况下,Spring 使用 PROPAGATION_REQUIRED 传播机制。

    补充说明:

    • 当一个事务方法调用另一个事务方法时,事务传播机制决定了事务如何在这两个方法之间进行传播。
    • 使用事务传播机制可以控制事务的粒度,从而确保事务的一致性和可靠性。
    • 事务传播机制主要用于解决事务嵌套、事务的边界问题。
    • 不同的事务传播机制适用于不同的应用场景,开发者根据实际需求选择合适的传播机制。
    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部