Spring五個事務隔離級別 七個事務傳播行為級別

2021-09-01 16:24:58 字數 1215 閱讀 8915

[size=medium][b]spring 五個事務隔離級別和七個事務傳播行為 [/b] [/size]

在transactiondefinition介面中定義了五個不同的事務隔離級別

1、isolation_default:這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別。

另外四個spring與jdbc的隔離級別都是一樣的

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

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

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

5、isolation_serializable:這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。防止了髒讀,不可重複讀外,幻像讀。

[b]在transactiondefinition介面中定義了七個事務傳播行為級別。[/b]

1、propagation_required: 如果存在乙個事務,則支援當前事務。如果沒有事務則開啟乙個新的事務。

2、propagation_supports: 如果存在乙個事務,支援當前事務。如果沒有事務,則以非事務的執行。但是對於事務同步的事務管理器,propagation_supports與不使用事務有少許不同。

3、propagation_mandatory:如果已經存在乙個事務,支援當前事務。如果沒有乙個活動的事務,則丟擲異常。

4、propagation_requires_new:總是開啟乙個新的事務。如果乙個事務已經存在,則將這個存在的事務掛起。

5、propagation_not_supported:總是非事務地執行,並掛起任何存在的事務。

6、propagation_never總是非事務地執行,如果存在乙個活動事務,則丟擲異常

7、propagation_nested:如果乙個活動的事務存在,則執行在乙個巢狀的事務中. 如果沒有活動事務, 則按transactiondefinition.propagation_required屬性執行.

spring 五個事務隔離級別和七個事務傳播行為

spring 在transactiondefinition介面中定義了五個不同的事務隔離級別 isolation default這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別.另外四個與jdbc的隔離級別相對應 isolation read ...

spring 五個事務隔離級別和七個事務傳播行為

spring在transactiondefinition介面中定義這些屬性 在transactiondefinition介面中定義了五個不同的事務隔離級別 isolation default 這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別.另...

Spring五個事務隔離級別和七個事務傳播行為

五個事務隔級別分別為 lsolation的屬性值 1,default 預設的事務隔離級別 2,read uncommitted 讀未提交,乙個事務可以操作另外乙個未提交的事務,不能避免髒讀,不可重複讀,幻讀,隔離級別最低,併發性 能最高 3,read committed 讀已提交,乙個事務不可以操作...