Spring 事务
Contents
💠
💠 2024-01-31 11:40:19
Spring 事务
propagation
isolation
事务 和 AOP 同时使用 顺序问题
Afterreturning 和 Transactional
失效场景
- 数据库引擎不支持事务,例如 MyISAM
- 注解所在类没有进入IOC容器
- 注解所在方法没有public修饰, 从反射和代理技术角度是可以实现非public代理,只是在规范上要求public修饰
- 该方法在当前类被调用,AOP没有生效
- 数据源没有加载事务管理器
- propagation 设置不正确: PROPAGATION_SUPPORTS PROPAGATION_NOT_SUPPORTED PROPAGATION_NEVER
- 异常被catch或者 rollbackFor 指定的类型不匹配(非自身且非子类)且该异常非RuntimeException和Error 子类
- org.springframework.transaction.interceptor.RuleBasedTransactionAttribute#rollbackOn
- org.springframework.transaction.interceptor.DefaultTransactionAttribute#rollbackOn
异常场景
事务内语句 部分未回滚 部分失败
- 使用 MySQL DML 和 DDL 混合使用 。
PG 支持DDL事务手动管理 MySQL的DDL会使用隐含事务不提供手动管理
可编程事务管理
- TransactionTemplate
- TransactionOperator
- TransactionManager
- ReactiveTransactionManager
Author Kuangcp
LastMod 2018-12-21