spring 事務註解

2021-07-05 13:53:34 字數 1410 閱讀 7305

spring 事務註解

預設遇到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) 

/*public void methodname()

other失敗了不會影響 本類的修改提交成功

本類update的失敗,other也失敗

*/@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)

spring事務註解

transactional只能被應用到public方法上,對於其它非public的方法,如果標記了 transactional也不會報錯,但方法沒有事務功能.spring使用宣告式事務處理,預設情況下,如果被註解的資料庫操作方法中發生了unchecked異常,所有的資料庫操作將rollback 如果...

spring事務註解

transactional只能被應用到public方法上,對於其它非public的方法,如果標記了 transactional也不會報錯,但方法沒有事務功能.spring使用宣告式事務處理,預設情況下,如果被註解的資料庫操作方法中發生了unchecked異常,所有的資料庫操作將rollback 如果...

spring 事務註解

配置檔案 value class 上面配置的意思就是配置面向切面,只要servcie中的方法丟擲exception,那麼insert,update,delete的sql方法都會回滾。測試時,可以在service方法中故意丟擲乙個異常,throw new exception test 那麼資料庫就不會...