Spring事务管理:-propagation

propagation 事务传播行为:指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行事务控制。 

例:@Transactional(propagation=Propagation.REQUIRED)

常见传播行为

  • REQUIRED‌(默认值):若存在事务则加入,否则新建事务。适用于大多数场景,如普通业务操作。 ‌
  • REQUIRES_NEW‌:无论是否存在事务,均新建独立事务。适用于需要独立操作且不影响原事务的场景(如审计日志)。 ‌
  • NESTED‌:若存在事务,则在嵌套事务内执行;若不存在,则创建新事务。适用于需要依赖主事务但需独立提交的场景。 ‌
  • SUPPORTS‌:若存在事务则加入,否则以非事务方式执行。适用于查询操作或非必须事务的场景。 ‌

注意事项

  1. 作用范围‌:@Transactional应作用于方法级别(public方法),类级别或非public方法无效。 ‌
  2. 异常处理‌:仅抛出运行时异常(如NullPointerException)会触发回滚;受查异常(如自定义异常)不会回滚。 ‌
  3. 间接调用‌:通过接口或异步任务间接调用时,默认不会触发事务回滚(需显式配置)。 ‌

属性值如下:

image

posted @ 2025-10-03 22:23  休玛  阅读(2)  评论(0)    收藏  举报