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ù)。。。
而像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