Abp框架工作單元 可以在發生異常發生的時候能夠回滾,目前項目需要使用鎖,由此思考需要注意的事項.
Abp框架 工作單元實現非常的靈活,默認在Application層自動開啓工作單元,即自動開啓事務,所有在內部調用方法自動獲取外層的事務,中間發生異常,在最外層方法結束後自動回滾.那麼現在的問題是,如果外層使用了try catch,事務會不會回滾,答案是 不會回滾了
try{
do some trans..
}
catch{
}
finally{
但是不catch 還是可以 回滾的
try{
}
finally{
}
那如果try catch同時需要回滾怎麼辦,要麼手動開一個事務,要麼主動在catch之後 再拋出異常.
我這邊主要使用的是 try finally ,主要是需要釋放鎖,在try 裏面做鎖操作,同時在finally裏面執行 釋放鎖的操作,防止沒有釋放鎖 產生死鎖.