風人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數據加載中……

          spring 事務的回滾問題

              spring的事物配置,默認狀態下,只針對 RuntimeException 進行回滾。
          而像SQLException并不是RuntimeException,所以這里需要特別注意。

          這里困擾了我很久,一直沒有想明白為什么在一個事務里面,部分成功,部分失敗。可能就是這個原因導致的。
          也就是說,一些系統級別的異常,前期都需要轉化成 RuntimeException 。這樣就可以進行回滾了。

          但是這樣的只需要修改底層,另外一個偷懶的方法,在每個service類上直接指定rollback = Exception.class。這樣所有的異常都會回滾。但是這樣有沒有副作用,但是不清楚。

          異常一直是我沒有搞定的一塊內容之一,稱這個機會研究一下。
          為什么需要分check 和unckeck,兩者有什么不動點。
          如果都是用uncheck,會不會有什么問題?
          待續。。。

          posted on 2010-12-14 14:01 風人園 閱讀(879) 評論(1)  編輯  收藏 所屬分類: Spring

          評論

          # re: spring 事務的回滾問題  回復  更多評論   

          根據傳智播客的講座中的講解,所謂check和uncheck是針對調用者來說的。你編寫了這段功能,如果標明是check,調用這段代碼的人就必須捕獲該異常。反之,如果你編寫的這段代碼標明是uncheck,調用這段代碼的地方,就可以不捕獲該異常。
          不知道俺說清楚了沒。
          2011-01-07 10:05 | mulanhua
          主站蜘蛛池模板: 太白县| 南木林县| 博客| 襄垣县| 库车县| 晋宁县| 普兰店市| 阳山县| 乐昌市| 灌云县| 兴山县| 洞头县| 南京市| 武乡县| 宁陕县| 贵定县| 连江县| 达日县| 泾川县| 高青县| 时尚| 唐河县| 昌平区| 茂名市| 九龙城区| 华亭县| 东辽县| 宁陕县| 张家川| 云霄县| 盐边县| 元朗区| 阜城县| 连城县| 江津市| 武鸣县| 台北县| 印江| 玛沁县| 清镇市| 申扎县|