要添加事物 必須在方法上添加
一.開啟事物
@Transactional 注解
可以在注解后加(rollbackFor = Exception.class)
代表 碰到所有異常都回滾 默認RuntimeException異常回滾
@Transactional (rollbackFor = Exception.class)
注意:如果自定義數據源或者多數據源是需要自定事物的!
默認 mybatis-plus-boot-starter 或 mybatis-spring-boot-starter 會自動定義好事物
自定義事物如下
@Configuration @EnableTransactionManagement public class TransactionConfig { @Bean public PlatformTransactionManager txManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } }
二.事物回滾
如果需要事物回滾有兩個條件
1.方法中有異常或者主動拋異常
2.主動去回滾
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
注意 : 如果遇到 org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus
說明容器中沒有定義事物,需要自定義事物