Spirng事务的传播学习

事务传播:一个事务方法在被调用时,如何与现有事务的交互行为。当方法被事务性地调用时,他应该加入当前事务还是开启一个新事物。

常见的事务传播机制(7种):

Propagation枚举类,定义了传播机制和值:

PROPAGATION_REQUIRED:这是默认的传播方式。如果当前有事务,调用方法会加入当前事务;如果没有事务,会新建一个事务。适合大多数数据库操作,在一个事务的场景

**PROPAGATION_REQUIRES_NEW:**无论当前是否存在事务中,都会开启一个新事务。原来的事务会被挂起,直到新的事务执行完成。适合日志记录,外部API调用等不依赖主事务的操作

PROPAGATION_SUPPORTS:如果当前有事务,则加入该事务;如果没有事务,则以非事务的方式执行。适合可选事务的场景,例如只读的服务方法,是否在事务中执行无关紧要

PROPAGATION_NOT_SUPPORT:表示当前方法不需要事务,且如果存在事务,则将事务挂起。适合长时间操作或不需要事务管理的操作。

PROPAGATION_MANDATORY:要求必须在现有事务中执行,如果当前没有事务,则抛出异常。

适合必须在事务上下文中运行的方法

PROPAGATION_NEVER:禁止在事务内执行,如果存在事务就抛出异常。适合明确不希望某些操作在事务中时使用

PROPAGATION_NESTED:开启嵌套事务,如果外层事务回滚,嵌套事务也会回滚;但如果嵌套事务回滚,外层事务可以继续。适合部分操作需要独立回滚的复杂业务逻辑场景。

相关推荐
我爱cope8 分钟前
【计算机网络 | 物理层3:数字编码与调制:比特如何变成可传输的信号?】
网络·学习·计算机网络
molaoye14 分钟前
win10下安装MySQL 8.0.*实录
数据库·mysql
麻雀聊技术18 分钟前
一重启 AI 就失忆?用 Spring AI + PostgreSQL 3步搞定“长期记忆”持久化(附完整代码)
java·spring·openai
千舟软件26 分钟前
千舟软件介绍 | 顺便聊聊我们做了哪些产品
大数据·数据库·科技·小程序·业界资讯
码农进化录27 分钟前
Java 程序员的 AI 进化论 | LangChain4j 入门,Java 开发者的 AI 应用框架
java·spring boot·openai
一只小菜鸡..34 分钟前
南京大学 操作系统 (JYY) 学习笔记:最终章——操作系统的宇宙,与我们的星辰大海
笔记·学习
番茄炒鸡蛋加糖1 小时前
中级核心技术1--MySQL/Java 并发
java·数据库·mysql
he___H1 小时前
Spring-Configur注解
java·spring
戴西软件1 小时前
戴西CAxWorks.VPG车辆工程仿真软件技术解析(上)——安全仿真体系的自动化构建
运维·网络·数据库·人工智能·算法·安全·自动化
SunnyDays10112 小时前
Java 如何为 PDF 添加、修改和删除书签
java·pdf