Transactional註解詳解

2021-09-08 22:38:26 字數 1280 閱讀 4476

預設遇到throw new runtimeexception("...");會回滾

需要捕獲的throw new exception("...");不會回滾

// 指定回滾

@transactional(rollbackfor=exception.class) 

public void methodname()  

//指定不回滾

@transactional(norollbackfor=exception.class)

public itimdaoimpl getitemdaoimpl()  

// 如果有事務,那麼加入事務,沒有的話新建乙個(不寫的情況下)

@transactional(propagation=propagation.required) 

// 容器不為這個方法開啟事務

@transactional(propagation=propagation.not_supported)

// 不管是否存在事務,都建立乙個新的事務,原來的掛起,新的執行完畢,繼續執行老的事務

@transactional(propagation=propagation.requires_new) 

// 必須在乙個已有的事務中執行,否則丟擲異常

@transactional(propagation=propagation.mandatory)

// 必須在乙個沒有的事務中執行,否則丟擲異常(與propagation.mandatory相反)

@transactional(propagation=propagation.never) 

// 如果其他bean呼叫這個方法,在其他bean中宣告事務,那就用事務.如果其他bean沒有宣告事務,那就不用事務.

@transactional(propagation=propagation.supports) 

@transactional(propagation=propagation.nested) 

// readonly=true唯讀,不能更新,刪除 

@transactional (propagation = propagation.required,readonly=true) 

// 設定超時時間

@transactional (propagation = propagation.required,timeout=30)

// 設定資料庫隔離級別

@transactional (propagation = propagation.required,isolation=isolation.default)

Transactional註解初見

之前一直使用宣告式事務,切面程式設計的配置方式讓程式設計者忘記了事務的存在,一旦離開,發現這個事務還是蠻重要的 public inte ce userservice transactional public class userserviceimpl implements userservice p...

Transactional註解用法

1.事務隔離級別 隔離級別是指若干個併發的事務之間的隔離程度。transactiondefinition 介面中定義了五個表示隔離級別的常量 2.事務傳播行為 所謂事務的傳播行為是指,如果在開始當前事務之前,乙個事務上下文已經存在,此時有若干選項可以指定乙個事務性方法的執行行為。在transacti...

Transactional註解怎麼使用?

1 在方法或者類上都可以新增。如果在類上新增,則此類中的所有方法都會執行事務,不推薦,因為可能後續接手開發的小夥伴新增方法的時候根本不需要執行事務 2 觸發事務回滾有兩種方式 3 推薦在註解上新增 transactional rollbackfor 如果不加的話,方法預設只會在丟擲runtimeex...