一.業務需求
方法中需要處理一定的業務邏輯,如果業務邏輯失敗,則相關的業務操作回滾,同時記錄一條錯誤日志
二.具體實現
//添加事務注解
@Transactional(rollbackFor = Exception.class)
public void changeBookPrice(Book book, Book bookEntity) {
//創建回滾點
Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
try {
//具體的業務邏輯操作
......
} catch (Exception e) {
log.error("報錯的詳細信息為:{}", e.getMessage());
//手動回滾事務
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
//記錄錯誤的日志
.......
}
}
詳細解釋
- 方法上添加@Transactional注解
- 方法開始的地方創建回滾點
- try中進行業務邏輯操作
- catch中手動進行事務回滾,並記錄錯誤日志
- 上面的操作就能進行業務邏輯回滾,同時記錄錯誤日志