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 那麼資料庫就不會...