spring事务传播有哪些

回复

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

    Spring框架中的事务传播属性定义了事务方法调用之间事务的传播行为。通过指定适当的传播属性,可以控制事务的范围和行为。Spring框架中定义了以下七种事务传播行为:

    1. REQUIRED(默认):如果当前没有事务,就新建一个事务;如果已经存在一个事务中,就加入到这个事务中。

    2. SUPPORTS:如果当前有事务,就加入到这个事务中;如果当前没有事务,就以非事务的方式执行。

    3. MANDATORY:如果当前有事务,就加入到这个事务中;如果当前没有事务,就抛出异常。

    4. REQUIRES_NEW:创建一个新的事务,如果当前存在事务,就将当前事务挂起。

    5. NOT_SUPPORTED:以非事务的方式运行,如果当前存在事务,就将当前事务挂起。

    6. NEVER:以非事务的方式运行,如果当前存在事务,则抛出异常。

    7. NESTED:如果当前存在事务,则在嵌套事务中执行;如果当前没有事务,则开启一个新的事务。

    这些事务传播行为可以通过在Spring事务管理器或@Transactional注解中设置相应的值来进行配置。对于不同的业务需求,选择适当的事务传播行为可以保证事务的一致性和隔离性。

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

    在Spring框架中,事务是指一组操作被当作一个独立的单元,要么全部执行成功,要么全部回滚。事务传播控制指的是在多个事务方法之间如何传递事务的行为。

    Spring框架提供了多种事务传播行为,下面是常见的几种:

    1. REQUIRED:如果当前存在事务,则加入到当前事务中;如果当前没有事务,则创建一个新的事务。这是默认的传播行为。

    2. SUPPORTS:如果当前存在事务,则加入到当前事务中;如果当前没有事务,则以非事务的方式执行。

    3. MANDATORY:如果当前存在事务,则加入到当前事务中;如果当前没有事务,则抛出异常。

    4. REQUIRES_NEW:无论当前是否存在事务,都会创建一个新的事务。如果当前存在事务,则挂起当前事务。

    5. NOT_SUPPORTED:以非事务的方式执行,并且如果当前存在事务,则挂起当前事务。

    6. NEVER:以非事务的方式执行,并且如果当前存在事务,则抛出异常。

    7. NESTED:如果当前存在事务,则在一个嵌套的事务中执行。嵌套事务独立于当前事务,可以独立地提交或回滚。如果当前没有事务,则创建一个新的事务。

    以上是常见的事务传播行为,根据不同的业务需求,可以选择合适的事务传播行为来控制事务的行为。这样可以确保在进行多个事务操作时,能够实现事务的一致性和可靠性。

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

    Spring事务传播是指在一个事务方法被调用时,Spring框架如何管理事务的传播行为。事务传播行为可以用来解决在多个事务方法之间如何共享和管理事务的问题。Spring框架提供了几种事务传播行为供开发者选择使用,包括以下几种:

    1. REQUIRED:默认的事务传播行为。如果当前已经存在一个事务,则加入该事务;如果不存在事务,则创建一个新事务。这是最常用的传播行为,通常用于大部分事务操作。

    2. SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。该传播行为通常用于读取操作,不需要事务支持。

    3. MANDATORY:强制要求当前存在一个事务,如果不存在事务,则抛出异常。通常用于需要事务支持的操作,如果调用方法没有事务则抛出异常。

    4. REQUIRES_NEW:创建新事务,并挂起当前事务。即使有其他事务存在,也会创建一个新事务来执行。通常用于需要独立事务的操作,如定时任务或独立的业务逻辑。

    5. NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,则将其挂起。该传播行为通常用于在一个事务方法中执行一些不需要事务支持的操作。

    6. NEVER:以非事务方式执行操作,如果当前存在事务,则抛出异常。通常用于在一个事务方法中调用一个不允许有事务的方法。

    7. NESTED:如果当前存在事务,则在该事务的范围内创建一个保存点,并在方法执行结束后,根据保存点的情况来决定是否提交或回滚事务。如果当前没有事务,则创建一个新事务。该传播行为通常用于嵌套事务的操作,外层事务的提交不会影响内层事务的结果。

    在使用Spring事务传播时,可以使用注解方式配置事务传播行为,也可以使用XML配置的方式。通过合理选择和配置事务传播行为,可以保证事务的一致性和可靠性。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部