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
都没有。
此文希望可以帮助到大家。如有错误,请指教。
如果大家还有其他的情况或者好的解决方法,也望指教,感谢阅读。