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
标签:事务,spring,Transactional,存在,Propagation,methodB,Isolation,注解 来源: https://www.cnblogs.com/sinosecurity/p/16097020.html