propagation_required 支援當前事務,如果當前沒有事務,則新建乙個事務。
propagation_supports 支援當前事務,如果當前沒有事務,則以非事務方式執行。
propagation_mandatory 支援當前事務,如果當前沒有事務,則丟擲異常。
propagation_requires_new 新建事務,如果當前存在事務,把當前事務掛起。
propagation_not_supported 以非事務方式執行,如果當前存在事務,把當前事務掛起。
propagation_never 以非事務方式執行,如果當前存在事務,則丟擲異常。
propagation_nested 如果當前存在事務,則在巢狀事務內執行,如果當前沒有事務,則新建乙個事務。
isolation_default 預設隔離級別,使用資料庫預設的事務隔離級別。
isolation_read_uncommitted 最低的隔離級別,允許乙個事務檢視另乙個事務未提交的資料。會產生髒讀,不可重複讀,幻讀。
isolation_read_committed 保證乙個事務修改的資料需要提交後才能被另乙個事務讀取,鎖定正在讀取的行。能夠避免髒讀。
isolation_repeatable_read 鎖定讀取的所有行。能夠避免髒都,不可重複讀。
isolation_serializable 最高的隔離級別,鎖住表,事務被處理為順序執行。能夠避免髒讀,不可重複讀,幻讀。
髒讀:乙個事務正在訪問資料,並且對資料進行了修改,而修改還沒有提交到資料庫。這時,另乙個事務也訪問這個資料,然後使用了未提交前的資料。
不可重複讀:乙個事務內多次讀取同一資料。在事務還沒結束時,另乙個事務也訪問同一資料。在第乙個事務中的兩次讀資料之間,第二個事務修改資料,導致第乙個事務讀取的資料不一致。
幻讀:乙個事務對乙個表中的資料進行了修改,這種修改涉及到表中的全部資料行。 同時,另乙個事務也修改這個表中的資料,這種修改是向表中插入一行新資料。那麼,以後就會發生操作第乙個事務的使用者發現表中還有沒有修改的資料行,就好象發生了幻覺一樣。
spring事務種類簡介
required 預設值 在有transaction狀態下執行 如當前沒有transaction,則建立新的transaction supports 如當前有transaction,則在transaction狀態下執行 如果當前沒有transaction,在無transaction狀態下執行 man...
Spring 事務管理簡介
事務管理器是 platformtransactionmanager 介面物件。其主要用於完成事務的提交 回滾,及獲取事務的狀態資訊。void commit transactionstatus status 事務的提交 transactionstatus gettransaction transact...
Spring的事務管理簡介
比如去atm機取1000塊錢,大體有兩個步驟 首先輸入密碼金額,銀行卡扣掉1000元錢 然後atm出1000元錢。這兩個步驟必須是要麼都執行要麼都不執行。如果銀行卡扣除了1000塊但是atm出錢失敗的話,將會損失1000元 如果銀行卡扣錢失敗但是atm卻出了1000塊,那麼銀行將損失1000元。所以...