1、@Transactional注解中的属性设置
属性 | 类型 | 描述 |
---|---|---|
value | String | 可选限定符,指定要使用的事务管理器。 |
propagation | 枚举: Propagation | 可选的传播设置。 |
isolation | 枚举: Isolation | 可选隔离级别。仅适用于传播REQUIRED或REQUIRES_NEW。 |
timeout | int(以秒为单位) | 可选事务超时。仅适用于传播REQUIRED或REQUIRES_NEW。 |
readOnly | boolean | 读/写与只读事务。仅适用于REQUIRED或REQUIRES_NEW。 |
rollbackFor | Class 对象的数组,必须派生自Throwable. | 必须导致回滚的可选异常类数组。 |
rollbackForClassName | 类名数组。类必须派生自Throwable. | 必须导致回滚的可选异常类名称数组。 |
noRollbackFor | Class 对象的数组,必须派生自Throwable. | 可选的异常类数组,不得导致回滚。 |
noRollbackForClassName | String 类名称的数组,必须派生自 Throwable. | 必须不会导致回滚的异常类名称的可选数组。 |
2、默认 @Transactional
设置如下:
-
传播设置为
PROPAGATION_REQUIRED.
-
隔离级别为
ISOLATION_DEFAULT.
-
事务是读/写。
-
事务超时默认为基础事务系统的默认超时,如果不支持超时,则默认为none。
-
任何
RuntimeException
触发回滚,任何已检查的Exception
都没有。
此文希望可以帮助到大家。如有错误,请指教。
如果大家还有其他的情况或者好的解决方法,也望指教,感谢阅读。