Transactional 注解的属性
- name 当在配置文件中有多个 TransactionManager , 可以用该属性指定选择哪个事务管理器。
- propagation 事务的传播行为,默认值为 REQUIRED。
- isolation 事务的隔离度,默认值采用 DEFAULT。
- timeout 事务的超时时间,默认值为-1。如果超过该时间限制但事务还没有完成,则自动回滚事务。
- read-only 指定事务是否为只读事务,默认值为 false;为了忽略那些不需要事务的方法,比如读取数据,可以设置 read-only 为 true。
- rollback-for 用于指定能够触发事务回滚的异常类型,如果有多个异常类型需要指定,各类型之间可以通过逗号分隔。
- no-rollback- for 抛出 no-rollback-for 指定的异常类型,不回滚事务。
propagation 属性(事务传播性)
- REQUIRED 支持当前已经存在的事务,如果还没有事务,就创建一个新事务。
- MANDATORY 支持当前已经存在的事务,如果还没有事务,就抛出一个异常。
- NESTED 在当前事务中创建一个嵌套事务,如果还没有事务,那么就简单地创建一个新事务。
- REQUIRES_NEW 挂起当前事务,创建一个新事务,如果还没有事务,就简单地创建一个新事务。
- NEVER 强制要求不在事务中运行,如果当前存在一个事务,则抛出异常。
- NOT_SUPPORTED 强制不在事务中运行,如果当前存在一个事务,则挂起该事务。
- SUPPORTS 支持当前事务,如果没有事务那么就不在事务中运行。