事務的屬性
1 propagation用來設置事務的傳播行為
事務的傳播行為:一個方法運行在了一個開啟事務的方法中,當前方法是使用依附的方 法事務還是使用自身的事務
Propagation.REQUIRED默認值 使用其依附的別人方法的事務
Propagation.REQUIRES_NEW 將原來的事務掛起 開啟一個新的事務(即執行自身的事務)
使用方法 在需要使用事務的方法上加注解 @Transactional 什么都不加默認為Propagation.REQUIRED
若想開啟新事務執行自己的事務則可以在方法上加@Transactional(propagation=Propagation.REQUIRES_NEW)
2 isolation用來設置事務的隔離級別
Oracle支持的事務隔離級別為 (默認讀已提交read committed 串行化 serializable
- Mysql支持所有的事務隔離級別 讀未提交 read uncommitted
- 讀已提交 read commited
- (默認)可重復讀 repeatable read
- 串行化 serializable
同傳播行為一樣 也是在注解@Transaction()中添加 (isolation=Isolation.DEFAULT)
例 : 購買圖書時Mysql數據庫默認是可重復讀事務隔離級別 則當數據庫中書價格變的時候查出的價格仍然是變動之前的