🔄 事务管理

声明式事务 - @Transactional

📚 ACID 特性

A

Atomicity

原子性

事务是不可分割的工作单位

C

Consistency

一致性

数据库状态保持一致

I

Isolation

隔离性

事务之间相互隔离

D

Durability

持久性

提交后永久保存

🚀 传播行为 (Propagation)

REQUIRED (默认)

有事务则加入,无则新建

最常用,适合大多数业务方法

REQUIRES_NEW

总是新建事务,挂起当前事务

适合日志记录、独立子任务

SUPPORTS

有事务则加入,无则以非事务运行

适合查询方法

NOT_SUPPORTED

以非事务运行,挂起当前事务

不需要事务的操作

MANDATORY

必须在事务中运行,否则抛异常

强制要求事务

NEVER

不能在事务中运行,否则抛异常

确保无事务

🔒 隔离级别 (Isolation)

级别脏读不可重复读幻读说明
READ_UNCOMMITTED读未提交,性能最高
READ_COMMITTED读已提交,Oracle默认
REPEATABLE_READ可重复读,MySQL默认
SERIALIZABLE串行化,性能最低

✅ = 防止该问题 | ❌ = 可能出现该问题

🧪 事务回滚演示

创建订单时触发异常,观察事务回滚效果