手動開啟事務,手動提交/回滾
@Resource
DataSourceTransactionManager dataSourceTransactionManager;
public void updateMonitorRecord() {
taskExecutor.execute(() -> {
//開啟事務
DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
definition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);//創建一個新事務
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(definition);
try {
//do something 業務代碼
//提交
dataSourceTransactionManager.commit(transactionStatus);
} catch (Exception e) {
//手動回滾
dataSourceTransactionManager.rollback(transactionStatus);
}
});
}
