@Transaction 事務

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}, isolation = Isolation.DEFAULT, readOnly = false)

1. propagation用法講解:

1、PROPAGATION_REQUIRED:如果存在一個事務,則支持當前事務。如果沒有事務則開啓。

2、PROPAGATION_SUPPORTS:如果存在一個事務,支持當前事務。如果沒有事務,則非事務的執行。

3、PROPAGATION_MANDATORY:如果已經存在一個事務,支持當前事務。如果沒有一個活動的事務,則拋出異常。

4、PROPAGATION_REQUIRES_NEW:總是開啓一個新的事務。如果一個事務存在,則將這個存在的事務掛起。

5、PROPAGATION_NOT_SUPPORTED:總是非事務地執行,並掛起任何存在的事務。

6、PROPAGATION_NEVER:總是非事務地執行,如果存在一個活動事務,則拋出異常。

7、 PROPAGATION_NESTED:如果一個活動的事務存在,則運行在一個嵌套的事務中,如果沒有活動事務,則按TransactionDefinition.PROPAGATION_REQUIRED屬性執行

2.isolation用法講解:
1、 ISOLATION_DEFAULT: 這是一個PlatfromTransactionManager默認的隔離級別,使用數據庫默認的事務隔離級別。

2、ISOLATION_READ_UNCOMMITTED:這是事務最低的隔離級別,它允許另外一個事務可以看到這個事務未提交的數據。

3、ISOLATION_READ_COMMITTED:保證一個事務修改的數據提交後才能被另外一個事務讀取。另外一個事務不能讀取該事務未提交的數據。

4、ISOLATION_REPEATALBE_READ: 這種事務隔離級別可以防止髒讀,不可重複讀。但是可能出現幻想讀。它除了保證一個事務不能讀取另外一個事務未提交的數據外,還保證了避免下面的情況產生(不可重複讀)。

5、ISOLATION_SERIALIZABLE 這是花費最高代價但是最可靠的事務隔離級別。事務被處理爲順序執行。除了防止髒讀,不課重複讀外,還避免了幻想讀。
————————————————
版權聲明:本文爲CSDN博主「fight_man001」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/fight_man8866/article/details/81297929

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章