栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring事务什么时候失效?什么时候不会进行回滚?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring事务什么时候失效?什么时候不会进行回滚?

1、访问权限问题

非public权限

2、方法用final修饰

spring事务基于AOP,方法被final修饰后不能被重写

3、方法内部使用
public void add(Dto dto){
    insert(dto);
    update(dto);
}

@Transtional()
public void update(){}

update相当于this调用,不会被重写

4、未被spring管理 5、多线程调用

spring的事务是在一个连接中,而连接是存在ThreadLocal中,多线程的会就会出现问题

6、表不支持事务

如Myasim

7、错误的传播特性 8、自己吞了异常

在catch中不抛出异常

try{
   .....
}catch(Exception e){
   log.error(e.getMessage());
}
9、手动抛了别的异常

spring默认情况下只会对RuntimeException和Error进行回滚,不会对普通的Exception进行回滚

10、自定义回滚异常
@Transactional(rollbackFor = BusinessException.class)
public void add(Dto dto){
    inser(dto);
}

当发生BusinessException进行回滚,但是当发生其他异常如SqlException就不会进行回滚

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349000.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号