事務傳播行為種類
spring在transactiondefinition介面中規定了7種型別的事務傳播行為,
它們規定了事務方法和事務方法發生巢狀呼叫時事務如何進行傳播:
事務傳播行為型別
事務傳播行為型別
說明propagation_required
如果當前沒有事務,就新建乙個事務,如果已經存在乙個事務中,加入到這個事務中。這是最常見的選擇。
propagation_supports
支援當前事務,如果當前沒有事務,就以非事務方式執行。
propagation_mandatory
使用當前的事務,如果當前沒有事務,就丟擲異常。
propagation_requires_new
新建事務,如果當前存在事務,把當前事務掛起。
propagation_not_supported
以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。
propagation_never
以非事務方式執行,如果當前存在事務,則丟擲異常。
propagation_nested
如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則執行與propagation_required類 似的操作。
Spring的7種事務傳播行為
事務傳播行為指的是乙個事務方法被另乙個事務方法呼叫時,這個事務方法應該如何進行。比如說,有乙個a方法,裡面呼叫了b方法,當執行到b方法時,是應該在當前事務裡執行,還是重新開啟乙個事務來執行,這是由b方法的事務傳播行為決定的 propagation required 表明當前方法一定要在事務中執行,如...
Spring事務的7種傳播行為
事務傳播行為指的就是當事務方法被另乙個事務方法呼叫時,這個事務方法應該如何進行。例如 methoda事務方法呼叫methodb事務方法時,methodb是繼續在呼叫者methoda的事務中執行呢,還是為自己開啟乙個新事務執行,這就是由methodb的事務傳播行為決定的。以下舉例時 方法a 中呼叫方法...
spring宣告式事務支援7種傳播行為
propagation required 支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇。propagation supports 支援當前事務,如果當前沒有事務,就以非事務方式執行。propagation mandatory 支援當前事務,如果當前沒有事務,就丟擲異常。propa...