Spring Boot事务管理

事务管理

事务进阶

如果在删除了部门之后,出现了异常。那么就会出现部门被删除之后其中的员工并未被删除。

@Transactional注解,在事务执行完成之后自动提交或者回滚。只需要在执行多次数据修改的事务上加上该注解即可。(比如两次Update或者两次Delete,思考:Update加Select呢?)

只有运行时异常才会被上面的注解回滚

这样设置表示出现所有异常都会回滚

表示A和B两者之间的传播关系

案例

将记录日志的操作放在Finally中,这样无论是否抛出异常都会执行下面的语句

因为默认为Required传播方法,所以这两个事务实际上是同一个事务。所以在第一个事务抛出异常之后直接进行了回滚,不会继续执行insert操作。只需要将事物的propagation参数设置成Requires_New即可。

相关推荐
步步为营DotNet4 分钟前
深入理解ASP.NET Core Middleware:管道执行机制与高效应用
后端·asp.net
遨游xyz6 分钟前
数据结构-栈
java·数据结构·算法
海南java第二人7 分钟前
Flink动态字符串处理框架:构建灵活可配置的实时数据管道
java·flink
lbb 小魔仙8 分钟前
MyBatis-Plus 系统化实战:从基础 CRUD 到高级查询与性能优化
java·性能优化·mybatis
BLUcoding8 分钟前
Docker 离线安装和镜像源配置
java·docker·eureka
tsyjjOvO9 分钟前
Maven从入门到精通
java·maven
JMchen12311 分钟前
跨平台相机方案深度对比:CameraX vs. Flutter Camera vs. React Native
java·经验分享·数码相机·flutter·react native·kotlin·dart
day day day ...11 分钟前
easyExcel和poi分别处理不同标准的excel
java·服务器·excel
没有bug.的程序员15 分钟前
Spring Boot 与 Swagger:API 文档自动化生成、版本管理与云原生协作深度实战指南
spring boot·云原生·自动化·api·swagger·版本管理·自动化生产
hgz071017 分钟前
堆内存分区
java·开发语言·jvm