在使用Spring 事務(@Transactional())時,被事務管理的業務類方法中如果使用try...catch...來捕獲異常的話,如果出現異常,事務不會回滾,這個時候我們可以手動回滾事務.如下:
//假設這是被事務管理的service類中的一個方法片段
try {
//業務邏輯
//出現異常
} catch (Exception e) {
e.printStackTrace();
//設置手動回滾
TransactionAspectSupport.currentTransactionStatus()
.setRollbackOnly();
}
//此時return語句能夠執行
return xxx;