spring事物屬性與隔離級別

chenjian98發表於2016-01-09

1、spring的傳播屬性

   

PROPAGATION_REQUIRED 如果當前沒有事務,就新建一個事務,如果已經存在一個事務,加入到這個事務中。這是最常見的選擇。
PROPAGATION_SUPPORTS 支援當前事務,如果當前沒有事務,就以非事務方式執行。
PROPAGATION_MANDATORY 使用當前的事務,如果當前沒有事務,就丟擲異常。
PROPAGATION_REQUIRES_NEW 新建事務,如果當前存在事務,把當前事務掛起。
PROPAGATION_NOT_SUPPORTED 以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。
PROPAGATION_NEVER 以非事務方式執行,如果當前存在事務,則丟擲異常。
PROPAGATION_NESTED 如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則執行與PROPAGATION_REQUIRED類似的操作。
2、spring事物的隔離級別

    髒讀:讀取別人已經修改還沒提交的資料

   不可重複讀:同一個事物多次查詢,返回不同的資料。因為另一個事物在2次查詢期間更新了資料

  幻讀:在讀取幾行時,另一個事物插入一些記錄。隨後查詢,多出一些記錄。

spring事物有四個隔離級別

資料隔離級別

隔離級別 髒讀 不可重複讀 幻象讀 第一類丟失更新 第二類丟失更新
READ UNCOMMITED 允許 允許 允許 不允許 允許
READ COMMITED 不允許 允許 允許 不允許 允許
REPEATABLE READ 不允許 不允許 允許 不允許 不允許
SERIALIZABLE 不允許 不允許 不允許 不允許 不允許
read uncommited<read commited<repeatable read<serializable


相關文章