關於同一個service方法中事務的問題


上午有個朋友問我,他在一個service方法中對兩張表進行了插入操作.那么它們之間是否會有影響,一個出了異常會不會影響到另一個.對此,我做了以下測試.

圖中的transactionalTest方法中有兩個插入操作,第一個insertVm方法是可以正常執行的,第二個insertTask方法是會拋異常的.

我執行了兩遍,第一個方法正常往數據庫中插入了數據,第二個insert方法沒有往數據庫插入數據.說明這樣的操作,兩個insert操作互不干擾.

隨后,我對該方法加了@Transactional(rollbackFor = Exception.class)注解

再次運行之后發現,加了注解之后,第一個insert方法也回滾了,沒有往數據庫中插入任何一條數據.

 

結論:不加@Transactional注解,則里邊的數據庫操作互不干擾,正常執行過去的操作會寫入到數據庫中.加了注解之后,該方法中的數據庫操作會保持事務的一致性,一個拋了異常,則所有事務回滾.

以上為個人測試所得觀點,不恰當之處歡迎各位大神指出.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM