spring事务细节总结

#########
事务细节:
#
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 如果有事务运行,当前方法就在这个事务的嵌套事务内运行,否则就开启新事务,并在自己的事务内运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值