2016-11-07 57 views
0

我希望有人碰到過這樣的問題:休眠saveAndFlush不持久,當應用程序異常被拋出

在服務層,我捕獲異常,並在catch塊我想保存在數據庫中調用saveAndFlush記錄然後拋出應用程序異常。問題是保存和刷新不會持續記錄,事務似乎回滾。

的代碼是類似的東西:

catch(SomeException e) { 
    repoClass.saveAndFlush(entity); 
    throw new ApplicationException(); 
} 

有什麼想法?

非常感謝。

回答

1

這是因爲如果代碼拋出任何RuntimeException,ApplicationExceptionRuntimeException因此saveAndFlush無法正常工作,春季將回滾交易。

你的情況,你不得不放棄一個UserDefinedException代替RuntimeException

樣品

public class UserDefinedException extends Exception { 

}