天天看點

spring中的@Transactional注解

參數(readOnly = true)

概念:從這一點設定的時間點開始(時間點a)到這個事務結束的過程中,其他事務所送出的資料,該事務将看不見!(查詢中不會出現别人在時間點a之後送出的資料)

應用場合:

如果你一次執行單條查詢語句,則沒有必要啟用事務支援,資料庫預設支援SQL執行期間的讀一緻性; 

如果你一次執行多條查詢語句,例如統計查詢,報表查詢,在這種場景下,多條查詢SQL必須保證整體的讀一緻性,否則,在前條SQL查詢之後,後條SQL查詢之前,資料被其他使用者改變,則該次整體的統計查詢将會出現讀資料不一緻的狀态,此時,應該啟用事務支援。

【注意是一次執行多次查詢來統計某些資訊,這時為了保證資料整體的一緻性,要用隻讀事務】

readOnly=false預設,開啟讀寫事務。讀寫資料庫的時候,假如某一行代道碼報錯了,那麼這個方法裡所有的資料庫操作都會被復原。

繼續閱讀