2011-03-24 61 views
1

假設我在服務層中標記了一個方法@Transactional(rollbackFor = PersistenceException.class)並且在該方法中具有如下的catch塊。@Transactional回滾對於問題

try{ 
    serverStore.update(persistableObject); 
    } catch (PersistenceException e) { 

} 

我會甚至會發現PersistenceException嗎?

我問,因爲我守衛的持久性異常是一個間歇性的死鎖問題,我不能告訴我是否因爲這個改變而沒有複製它,或者它不應該顯示出來。

回答

3

這取決於你如何刷新會話(實體管理器)。默認情況下,我認爲,在事務提交時它會變爲flush,所以你將無法捕獲方法中的異常。

+0

所以你說catch塊會是不必要的代碼? – Speck 2011-03-24 22:42:38

+0

是的。 (15chars)。 – Bozho 2011-03-24 22:43:17