- 场景一:数据库不支持事务
- --mysql数据库的MyISAM存储引擎不支持
- 场景二:事务方法未被Spring管理
- 如果事务方法所在的类没有加载到spring IOC容器中,则Spring事务会失效,一般是类上要加上@Service注解
- 场景三:方法没有被public修饰
- 如果事务所在的方法没有被public修饰,此时Spring的事务会失效
- 场景四:同一类中方法调用
- 同一类中两个方法有其中一个没标注事务
- 场景五:未配置事务管理器
- 项目配置类中加上事务
- pubilc PlatformTramsactionalmanager transactionalmanager(DataSource dataSource){
- return new DataSourceTramsactionalmanager(dataSource);
- }
- 场景六:方法的事务传播类型不支持事务
- 枚举类型NOT_SUPPORTED不支持事务
- 场景七:不正确的捕获异常
- try catch捕获异常,打印日志
- 场景八:错误的标注异常类型
- 默认事务异常类型RuntimeException,只有相对应的事务异常才会回滚。
Spring事务失效--八大场景
于 2023-09-07 18:06:19 首次发布