spring事務隔離和傳播機制的簡單理解

2021-07-13 08:43:34 字數 1288 閱讀 4794

一、spring事務的傳播機制(hibernatetransactionmanager)

1)、如果當前沒有事務,就新建乙個事務;如果已存在乙個事務,就加入到這個事務中。

2)、supports" /> 支援當前事務,如果當前沒有事務,以非事務方式執行。

3)、mandatory" />使用當前事務,如果當前沒有事務,則丟擲異常。

4)、requires_new

" />新建事務,如果當前存在事務,則把當前事務掛起。

5)、not_supported

" />以非事務方式執行,如果當前存在事務,則把當前事務掛起。

6)、never

" />以非事務方式執行,如果當前存在事務,則丟擲異常。

7)、nested

" />如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則執行         與

propagation_required

類似的操作。

二、spring事務隔離級別(isolation level)

1)、serializable: 事務序列執行,提供嚴格的事務隔離,它要求事務序列化執行,事務只能乙個接著乙個地執行,不能併發執行,資源消耗最大。

2)、repeatable read:可重複讀取,保證了乙個事務不會修改已經由另乙個事務讀取但未提交(回滾)的資料,避免了「髒讀取」和「不可重複讀取」的情況,但是帶來了更多的效能損耗。

3)、read committed:授權讀取,大多數主流資料庫的預設事務等級,保證了乙個事務不會讀到另乙個並行事務已經修改但未提交的資料,避免了「髒讀取」。

4)、read uncommitted:未授權讀取,保證讀取過程中不會讀到方法資料,隔離級別在於處理多事務併發問題。該隔離級別可以通過 「排他寫鎖」實現。事務隔離的最低級別,僅可保證不讀取物理損壞的資料。與read committed 隔離級相反,它允許讀取已經被其它使用者修改但尚未提交確定的資料。

5)、隔離級別                 更新丟失 髒讀取 重複讀取 幻讀 

read uncommitted     n            y         y          y 

read committed        n            n         y          y 

repeatable read     n            n         n         y 

serializable               n            n         n         n

Spring事務傳播機制和隔離級別

事務的傳播機制是指新增事務時的策略。傳播機制共有以下幾種 propagation mandatory 當前事務必須在乙個已有事務環境中執行,否則丟擲異常 propagation required propagation requires new propagation nested 這三種傳播機制不...

spring事務傳播和事務隔離

是最常用的,支援當前事務,若當前沒事務,就新建乙個事務。經測試,左側的事務註解必須得新增,右側的可加可不加 這倆insert事務合併成乙個事務了 支援當前事務,若當前沒事務,就以非事務方式執行。上圖 a調b,a有事務,b事務用supports,ab合併為乙個事務了。ab都會回滾 上圖 a調b,a無事...

Spring的事務隔離級別和傳播機制

spring 事務隔離級 spring 有五大隔離級別,其在transactiondefinition介面中定義。看原始碼可知,其默isolation default 底層資料庫預設級別 其他四個隔離級別跟資料庫隔離級別一致。1.isolation default 用底層資料庫的預設隔離級別,資料庫...