Spring事务 -- 持续更新中

Spring中七种事务传播行为

事务传播行为类型 说明 场景
PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。 默认,外层方法使用,用于包裹内层调用为一个事务。内层异常,即使外层catch也会被回滚,会触发Transaction was marked for rollback only; cannot commit因为内部方法的异常造成无法提交,是因为当前事务已经被标记为rollbackOnly了,所以无法提交。REQUIRED不建议手动捕获异常,会破坏Spring的事务规则;try-catch需要结合传播类型,再决定使用与否;
PROPAGATION_SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY 使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务挂起。 内层使用,表明自己为独立事务。如果抛出异常,外层调用时catch内层方法则不会影响外层事务;如果外层异常不会造成内层回滚
PROPAGATION_NOT_SUPPORTED 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 内层记录日志的可以使用。
PROPAGATION_NEVER 以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。 内层使用,表明为嵌套子事务。内层异常只要外层catch就不会影响外层提交。如果外层异常,子事务也被回滚
相关推荐
m0_5873830018 分钟前
24小时自助健身房软硬件解决方案实战指南:从架构设计到部署实施
java·spring·小程序·架构·需求分析
木头科技18 分钟前
【AI 工程化第五篇】Spring AI Agent 生产治理实战:限流、熔断、降级、灰度、多模型路由和安全边界
人工智能·安全·spring
陆卿之37 分钟前
Java对接DeepSeek
java·开发语言·人工智能
庄园特聘拆椅狂魔38 分钟前
Java 后端转全栈的第一课:从前端项目搭建到技术选
java·开发语言·前端
烽火聊员42 分钟前
Android屏幕卡顿traces.txt拉取查看
android·java·android studio
lzhdim1 小时前
C#不为人知的10个魔法特性:资深开发者也会震惊的底层奥秘
java·前端·javascript·算法·c#
hacker_LeeFei1 小时前
Windows 下配置 Redis 8.10.2 开机自启:一次踩坑全记录
数据库·windows·redis
ProcessOn官方账号1 小时前
java IO操作 你快速认识IO的相关基本知识
java·开发语言
计算机毕设定制辅导-无忧学长2 小时前
《基于Spring Boot的减脂轻食购物网站》
java·vue.js·spring boot·后端·减脂轻食购物网站
青山木2 小时前
Hot 100 --- 下一个排列
java·数据结构·算法·leetcode