闡述事務的隔離級別和傳播屬性

2021-10-04 11:40:33 字數 967 閱讀 3156

七個事務傳播屬性

propagation_required–支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇。

propagation_supports–支援當前事務,如果當前沒有事務,就以非事務方式執行。

propagation_mandatory–支援當前事務,如果當前沒有事務,就丟擲異常。

propagation_requires_new–新建事務,如果當前存在事務,把當前事務掛起。

propagation_not_supported–以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

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

propagation_nested–如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則進行與propagation_required類似的操作。

隔離級別是指若干個併發的事務之間的隔離程度。

isolation_default–這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別.另外四個與jdbc的隔離級別相對應;

isolation_read_uncommitted-這是事務最低的隔離級別,它充許別外乙個事務可以看到這個事務未提交的資料。這種隔離級別會產生髒讀,不可重複讀和幻像讀。

isolation read_comwitted-保證乙個事務修改的資料提交後才能被另外乙個事務讀取。另外乙個事務不能讀取該事務未提交的資料。這種事務隔離級別可以避免髒讀出現,但是可能會出現不可重複讀和幻像讀。

isolation repeatable read–這種事務隔離級別可以防止髒讀,不可重複讀。但是可能出現幻像讀。它除了保證乙個事務不能讀取另乙個事務未提交的資料外,還保證了避免下面的情況產生(不可重複讀)。

isolation serializable一這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。除了防止髒讀,不可重複讀外,還避免了幻像讀。

事務的傳播屬性和隔離級別

事務的傳播屬性和隔離級別是比較常見的面試題,下面就來總結一下。spring提供了7種傳播屬性,如下 傳播屬性 描述required 如果有事務執行,當前的方法就在這個事務內執行,否則,就開啟乙個新的事務,並在自己的事務內執行 requires new 當前的方法必須開啟新事務,並在它自己的事務內執行...

事務的隔離級別和傳播屬性

事務所具有的四種特性 原子性,一致性,隔離性,永續性 原子性 個人理解,就是事務執行不可分割,要麼全部完成,要麼全部拉倒不幹。一致性 關於一致性這個概念我們來舉個例子說明吧,假設張三給李四轉了100元,那麼需要先從張三那邊扣除100,然後李四那邊增加100,這個轉賬的過程對於其他事務而言是無法看到的...

Spring事務傳播屬性和隔離級別

當事務方法被另乙個事務方法呼叫時,必須指定事務應該如何傳播。例如 方法可能繼續在現有事務中執行,也可能開啟乙個新事務,並在自己的事務中執行 事務的傳播行為可以由傳播屬性指定 spring 定義了7種類傳播行為 傳播屬性 描述required 常用 如果有事務在執行,當前的方法就在這個事務內執行,否則...