#########
事务细节:
#
timeout:默认为 -1 超时,如果超出指定时间,事务将自动终止并回滚 (单位 : s )
#
readOnly:默认为 false 指定事务 只读,会大大增加执行效率,但是如果 事务中不止读操作,还有其它增删改操作,那么
会报错
#
异常: 运行时异常(非检查异常) 默认 事务都回滚, 而 编译时异常(检查异常) 默认是事务不回滚
#
noRollbackForClassName : 设置 出现异常时 哪些事务不会回滚
例: noRollbackForClassName = {“java.lang.ArithmeticException”}
#
noRollbackFor : 和 noRollbackForClassName 一样的作用,只是设置时比它简单
例: noRollbackFor={ArithmeticException.class}
#
rollbackForClassName : 和上面的作用相反,使出现异常时,哪些异常事务回滚
例: rollbackFor = {java.io.FileNotFoundException}
#
rollbackFor :同上
例: rollbackFor = {FileNotFoundException.class}
#
isolation :设置事务隔离级别(读未提交,读已提交,可重复读,串行化)
例: isolation = Isolation.READ_UNCOMMITTED 读未提交
例: isolation = Isolation.READ_COMMITTED 读已提交
例: isolation = Isolation.REPEATABLE-READ 可重复读
#
propagation :事务的传播行为,当一个事务方法被另一个方法(事务方法或普通方法)调用的时候,
必须指定事务应该如何传播
例: REQUIRED 如果有事务在运行,当前的事务方法就在这个事务内运行,否则就自己开启新的事务,并在自己的事务内运行
例: REQUIRES_NEW 当前方法必须开启新的事务,并在它自己的事务内运行,如果有事务在运行,就将运行的事务挂起,执行这个新开启的事务方法
例 SUPPORTS 如果有事务运行,当前方法就在运行在这个事务内,否则可以不在这个事务内运行
例: NOT_SUPPORTS 当前方法不应该运行在事务中,如果有运行的事务,就将运行的事务挂起,运行新的事务
例: MANDATORY 当前方法必须在事务内运行,如果没有运行的事务,就抛出异常
例: NEVER 当前方法不应该运行在事务内,如果有运行的事务,就抛出异常
例: NESTED 如果有事务运行,当前方法就在这个事务的嵌套事务内运行,否则就开启新事务,并在自己的事务内运行
spring事务细节总结
最新推荐文章于 2024-08-15 15:54:28 发布