Spring的事務傳播屬性和資料庫隔離級別

2021-08-31 08:13:38 字數 881 閱讀 7589

spring的7個事務傳播屬性:

required:業務方法需要在乙個事務中執行。如果方法執行時,已經處在乙個事務中,那麼假如到該事務,否則為自己建立乙個新的事物

not_supported:宣告方法不需要事務。如果方法沒有關聯到乙個事務,容器不會為它開啟事務。如果方法在乙個事務中被呼叫,該事務會被掛起,在方法呼叫結束後,原先的事務便會恢復執行。

requirednew:屬性表明不管是否存在事務,業務方法總會為自己發起乙個新的事務。如果方法已經執行乙個事務中,則原有的事務會被掛起,新的事物會被建立,直到方法執行結束,新的事務才算結束,原先的事務才會被恢復執行。

mandatory:該屬性指定業務方法只能在乙個已經存在的事務中執行,業務方法不能發起自己的事務。如果業務方法在沒有事務的環境下呼叫,容器就會丟擲異常。

supports:該事務屬性表明,如果業務方法在某個業務範圍內被呼叫,則方法成為該事務的一部分。如果業務方法在事務範圍外被呼叫,則方法在沒有事務的環境下執行。

never:指定業務方法絕對不能在事務範圍內執行。如果業務方法在某個事務中執行,容器會丟擲異常,只有業務方法沒有關聯到任何事務,才能正常執行。

nested:如果乙個活動的事務存在,則執行在乙個巢狀的事務中。如果沒有活動事務,則按required屬性執行,它使用乙個單獨的事務,這個事務擁有多個可以回滾的儲存點。內部事務的回滾不會對外部事務造成影響。它只對datesourcetransationmanager事務管理器起作用。

spring的4個資料庫隔離級別:

read uncommited:讀未提交資料(會出現髒讀,不可重複讀和幻讀)

read commited:讀已提交資料(會出現不可重複讀和幻讀)

repeated read:可重複讀(會出現幻讀)

serializable: 序列化

Spring 事務傳播屬性

propagation required 支援當前事務,如果不存在這建立乙個新事務,這是預設的事務管理。propagation supports 支援當前事務,如果不存在則已非事務的方式執行 propagation mandatory 如果存在乙個事務,支援當前事務,如果沒有事務活動則丟擲異常 pr...

Spring的事務傳播屬性

required 業務方法需要在乙個事務中執行。如果方法執行時,已經處在乙個事務中,那麼加入到該事務,否則為自己建立乙個新的事務。not supported 宣告方法不需要事務。如果方法沒有關聯到乙個事務,容器不會為它開啟事務。如果方法在乙個事務中被呼叫,該事務會被掛起,在方法呼叫結束後,原先的事務...

Spring事務的傳播屬性

搜尋 198200.com spring在transactiondefinition介面中規定了7種型別的事務傳播行為。事務傳播行為是spring框架獨有的事務增強特性,他不屬於的事務實際提供方資料庫行為。這是spring為我們提供的強大的工具箱,使用事務傳播行可以為我們的開發工作提供許多便利。但是...