2012-10-02 50 views

回答

2

然而,請注意Spring框架的事務 基礎架構代碼將默認情況下,只有標記事務中運行的情況下 回滾,未檢查異常;也就是當 拋出的異常是RuntimeException的一個實例或子類。 (錯誤也會 - 默認情況下會導致回滾)。檢查了 從事務性方法拋出的異常不會導致在回退的事務中導致 。

Source

即使檢查拋出異常,彷彿一切都是鳥語花香將提交事務。
如果需要,您可以配置回滾檢查異常。

<tx:advice id="txAdvice" transaction-manager="txManager"> 
    <tx:attributes> 
    <tx:method name="get*" read-only="false" rollback-for="AnyCheckedException"/> 
    <tx:method name="*"/> 
    </tx:attributes> 
</tx:advice> 

AnyCheckedException拋出將執行回滾。

這可能有所幫助:Spring transaction management with checked and unchecked exception

相關問題