日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

spring管理事務@Transactional注解相關參數

作者:仰望星空的快樂 更新時間: 2022-05-10 編程語言

1.propagation事務的傳播行為

看完就明白_spring事務的7種傳播行為_gnixlee的博客-CSDN博客_事務傳播行為

requird

方法A調用方法B,A中有事務,不管B中有沒有事務,B都被放入A中的事務執行

A中沒有事務,B就創建一個新事務,和A一起在新事物執行

requird-new

它會開啟一個新的事務。如果一個事務已經存在,則先將這個存在的事務掛起。

2.isolation 事務的隔離級別

為了解決以下三個問題

1>臟讀
? ??一個未提交的事務讀到了一個未提交事務的數據

例子:事務a和事務b都要對一行中的同一個sal進行修改值是5000,事務a要在原來基礎上加200,事務b要減200.事務a先加兩百但沒提交,事務b才讀數據,事務b讀到的就是事務a加兩百之后的數據5200,如果這時候a回滾了,則a的修改應該撤銷,b讀到的應該是5000,但是實際上b讀到的是a修改之后的數據 5200,這就是臟讀。

2>不可重復讀

一個未提交的事務讀到了一個已經提交的事務的數據

例子:事務a修改了sal,并立刻提交,b再讀sal,讀到的就是a修改之后的數據。

注意,這不是錯誤,一般是可以接受的,造成的后果僅僅是a每次讀到的數據可能不一樣

3>虛讀

一個未提交的數據讀到了一個已經提交的事務的增加的數據

這是不可重復讀的一種情況

解決方法:設置參數

@Transactional(isolation = Isolation.READ_UNCOMMITTED )  不解決問題
@Transactional(isolation = Isolation.READ_COMMITTED )解決臟讀
 @Transactional(isolation = Isolation.REPEATABLE_READ)解決臟讀和不可重復讀  mysql默認
@Transactional(isolation = Isolation.SERIALIZABLE) 三個都解決

效率從下往上越來越高

3.timeout

事務在多長時間內必須提交,否則回滾事務,mysql默認是不超時

4.readonly

? ?默認值是可以增刪改查,當值為true時,只能查詢

5.rollbackfor?

出現哪些異常回滾

6.norollbackfor

? 出現哪些異常不回滾

原文鏈接:https://blog.csdn.net/sharesb/article/details/123932693

欄目分類
最近更新