spring事务是怎么回滚的

spring事务是怎么回滚的,第1张

spring使用事务,就是在开始的事务start transaction然后执行sql语句,如果遇到异常(默认RuntimeException才会回滚)rollBack掉,如果一切都正常,才会commit,建议看下数据库的事务

有个很简单的办法:

1、ACD配置需要事务@Transactional(propagation = Propagation.REQUIRED)

2、B 方法上面配置新事务 @Transactional(propagation = Propagation.REQUIRES_NEW)

3、直接捕捉D方法的异常 不做处理 例如 代码这么写

A

B//配置另开事务@Transactional(propagation = Propagation.REQUIRES_NEW)

C

try{

D

}catch(Exception e){

// 随意

}

就可以导致回滚机制拿不到d抛出的异常,不做回滚处理。

在A,c处出现数据库异常会抛到外层方法导致回滚, 而B 只要执行了 跟他们事务隔离 不受影响。

另:如果java check异常也要加入到回滚机制 ,还需要配置rollbackfor


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10029961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存