風(fēng)人園

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

          spring 事務(wù)的回滾問(wèn)題

              spring的事物配置,默認(rèn)狀態(tài)下,只針對(duì) RuntimeException 進(jìn)行回滾。
          而像SQLException并不是RuntimeException,所以這里需要特別注意。

          這里困擾了我很久,一直沒(méi)有想明白為什么在一個(gè)事務(wù)里面,部分成功,部分失敗。可能就是這個(gè)原因?qū)е碌摹?br /> 也就是說(shuō),一些系統(tǒng)級(jí)別的異常,前期都需要轉(zhuǎn)化成 RuntimeException 。這樣就可以進(jìn)行回滾了。

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

          異常一直是我沒(méi)有搞定的一塊內(nèi)容之一,稱這個(gè)機(jī)會(huì)研究一下。
          為什么需要分check 和unckeck,兩者有什么不動(dòng)點(diǎn)。
          如果都是用uncheck,會(huì)不會(huì)有什么問(wèn)題?
          待續(xù)。。。

          posted on 2010-12-14 14:01 風(fēng)人園 閱讀(870) 評(píng)論(1)  編輯  收藏 所屬分類: Spring

          評(píng)論

          # re: spring 事務(wù)的回滾問(wèn)題  回復(fù)  更多評(píng)論   

          根據(jù)傳智播客的講座中的講解,所謂check和uncheck是針對(duì)調(diào)用者來(lái)說(shuō)的。你編寫了這段功能,如果標(biāo)明是check,調(diào)用這段代碼的人就必須捕獲該異常。反之,如果你編寫的這段代碼標(biāo)明是uncheck,調(diào)用這段代碼的地方,就可以不捕獲該異常。
          不知道俺說(shuō)清楚了沒(méi)。
          2011-01-07 10:05 | mulanhua
          主站蜘蛛池模板: 车险| 舟曲县| 景谷| 衡水市| 开封县| 中山市| 镇原县| 儋州市| 兴文县| 当雄县| 纳雍县| 吴川市| 无为县| 页游| 隆安县| 沂水县| 湖州市| 青冈县| 谢通门县| 唐河县| 佛教| 潍坊市| 偏关县| 上犹县| 罗平县| 怀柔区| 常宁市| 江孜县| 桓仁| 宁安市| 安乡县| 册亨县| 额敏县| 甘孜| 龙州县| 梧州市| 南靖县| 阳信县| 长春市| 长子县| 察隅县|