置顶
学习专栏:【Java后端面试题】
- 1.Java面试题—基础知识、面向对象、【容器】、IO & 【设计模式】、泛型 & 异常 & 反射 & 注解、快速排序
- 2.Java面试题—并发基础、【同步 & 互斥】、JUC & 并发容器、【线程池】、异步编程、【Lambda表达式】、方法引用、Stream流
- 3.Java面试题—JVM基础、【内存管理】、【垃圾回收】 & 垃圾收集器、JVM 调优
- 4.Java面试题—【Spring】、【Spring Boot】、Spring Cloud、Mybatis-Plus
- 5.Java面试题—【MySQL】、【Redis】、【计算机网络】、Linux、【Nginx】
事务的传播级别有什么作用?
- 事务的 传播级别 定义了在 多个事务交互 时,事务 如何进行 协作和处理。
- 传播级别 用于控制 事务的范围和行为,确保 多个事务 在 并发执行 时能够达到 预期的结果。不同的传播级别适用于不同的应用场景和需求。
有哪些事务的传播级别?
-
PROPAGATION_REQUIRED
(默认级别):如果当前没有事务,就创建一个新的事务;如果已经存在一个事务,就加入到当前事务中。这是最常用的传播级别,确保了一组操作要么全部成功,要么全部回滚,保持了一致性。 -
PROPAGATION_REQUIRES_NEW
:创建一个新的事务,如果当前已经存在一个事务,就将当前事务挂起。这个级别用于需要独立的子事务,子事务不会受到外部事务的影响,可以独立提交或回滚。 -
PROPAGATION_NESTED
:创建一个嵌套事务,如果当前已经存在一个事务,则在嵌套事务内部创建一个子事务。嵌套事务可以独立提交或回滚,但只有在主事务提交时才会被永久保存。这个级别用于需要在主事务内部管理子事务的情况。 -
PROPAGATION_SUPPORTS
:如果当前有事务,就加入到当前事务中;如果当前没有事务,就以非事务方式执行。这个级别用于在一定程度上支持事务,但不会强制执行事务。 -
PROPAGATION_NOT_SUPPORTED
:以非事务方式执行,如果当前有事务,就将其挂起。这个级别用于需要明确不支持事务的情况。 -
PROPAGATION_MANDATORY
:如果当前有事务,就加入到当前事务中;如果当前没有事务,就抛出异常。这个级别用于需要强制要求事务存在的情况。 -
PROPAGATION_NEVER
:以非事务方式执行,如果当前有事务,就抛出异常。这个级别用于需要明确禁止事务的情况。 -
PROPAGATION_NONE
:以非事务方式执行,如果当前有事务,就抛出异常。这个级别用于完全不需要事务支持的情况。
------ 感谢观看,一键三连 ------