spring的事物配置,默認狀態下,只針對 RuntimeException 進行回滾。
而像SQLException并不是RuntimeException,所以這里需要特別注意。
這里困擾了我很久,一直沒有想明白為什么在一個事務里面,部分成功,部分失敗。可能就是這個原因導致的。
也就是說,一些系統級別的異常,前期都需要轉化成 RuntimeException 。這樣就可以進行回滾了。
但是這樣的只需要修改底層,另外一個偷懶的方法,在每個service類上直接指定rollback = Exception.class。這樣所有的異常都會回滾。但是這樣有沒有副作用,但是不清楚。
異常一直是我沒有搞定的一塊內容之一,稱這個機會研究一下。
為什么需要分check 和unckeck,兩者有什么不動點。
如果都是用uncheck,會不會有什么問題?
待續。。。