1. 程式人生 > >170831-關於聲明式事務-事務屬性的設置

170831-關於聲明式事務-事務屬性的設置

再次 提交 alt ans 可重復 except 告訴 res 技術分享

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

170831-關於聲明式事務-事務屬性的設置