170831-關於聲明式事務-事務屬性的設置
阿新 • • 發佈:2017-08-31
再次 提交 alt ans 可重復 except 告訴 res 技術分享
- 事務屬性的設置 @Transactional中的屬性值
- 傳播行為
propagation=Propagation.REQUIRED是默認值 會按外層事務來,當下面的事務有錯時,也會回滾
propagation=Propagation.SUPPORTS按外層的來,外層沒有,就相當於沒有這個事務
propagation=Propagation.REQUIRES_NEW 按自己的來,當下面的事務有錯時,他不會回滾 - 隔離級別
isolation=Isolation.REPEATABLE_READ是默認值,可重復讀,在查詢了某個值之後,打了斷點,修改數據庫中的值,再次查詢,還是原來的數
isolation=Isolation.READ_COMMITTED 提交讀取,當上述情況,再次查詢時就是新改的值 - 事務根據什麽異常不進行回滾
noRollbackFor=ArithmeticException.class默認為有異常就回滾,現在設置為出現運算異常不回滾 - 事務的超時屬性
timeout=3 這個3秒指的是有沒有3秒之內執行完sql語句,如果沒有事務回滾,相當於對該操作進行撤銷,避免浪費資源 - 事務的只讀屬性
readOnly=true數據庫會對事務進行優化,如果是一個查詢操作,那麽數據庫可以有針對性的進行優化。我們可以通過設置事務屬性,告訴數據庫當前操作是一個只讀操作,便於數據庫進行優化。
170831-關於聲明式事務-事務屬性的設置