spring的@Transactional註解
阿新 • • 發佈:2022-04-03
@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