1. 程式人生 > 其它 >spring的@Transactional註解

spring的@Transactional註解

@Transactional註解的屬性

屬性 型別 描述
value Sring 指定事務管理
propagation enum:Propagation 指定事務傳播行為
isolation enum:Isolation 指定事務的隔離級別
readOnly boolean
timeout int
rollbackFor
rollbackForClassName
noRollbackFor
noRollbackForClassName

事務的傳播行為propagation

假設上下文由事務A,現在@Transactional註解又標註的methodB()方法,那麼此時是新建一個事務B還是把methodB()方法加入的事務A中?
Propagation.REQUIRED:預設設定,存在事務A就加入事務A,若不存在事務A,就新建事務B。
Propagation.REQUIRES_NEW:建立事務B,若存在事務A,掛起事務A
Propagation.SUPPORTS:若存在事務A就加入事務A,否則以非法形式存在。
Propagation.NOT_SUPPORTED:methodB()方法以非法形式存在,若存在事務A,掛起事務A
Propagation.NEVER:methodB()方法以非法形式存在,若存在事務A,丟擲異常
Propagation.MANDATORY:若存在事務A,methodB()方法加入事務A,否則丟擲異常
Propagation.NESTED:建立事務B,methodB()在事務B內執行,若存在事務A,則事務B巢狀在事務A中。

事務的隔離級別isolation

Isolation.DEFAULT:
Isolation.REPEATABLE_READ;
Isolation.READ_COMMITTED;
Isolation.READ_UNCOMMITTED;
Isolation.SERIALIZABLE