SpringBoot 開啓事務以及手動提交事務
需要在服務類上加上兩個註解
@Autowired
DataSourceTransactionManager dataSourceTransactionManager;
@Autowired
TransactionDefinition transactionDefinition;
//手動開啓事務
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
//手動提交事務
dataSourceTransactionManager.commit(transactionStatus);//提交
//手動回滾事務
dataSourceTransactionManager.rollback(transactionStatus);//最好是放在catch 裏面,防止程序異常而事務一直卡在哪裏未提交
常見異常:
Transaction is already completed - do not call commit or rollback more than once per transaction