关于spring在service层catch异常而出现无法回滚的问题的解决
来源:互联网 发布:手机网络营销策划书 编辑:程序博客网 时间:2024/05/05 20:48
这个问题是去面试的时候后来想到的。
面试官问我,你spring的事务申明是在dao层还是service层?我说我一般三层,controller,接口,dao,就这样。在dao会有多个数据操作。
我一般这样写代码。
回来后试了试controller,service,dao,中间用接口。习惯了面向接口编程。后来在事务上发现了问题。
一开始在dao层我故意在update方法中抛出这样一个异常:Column count doesn't match value count at row 1,在service层调用两个方法update和add,这两个方法组成原子性。想测试一下事务。理论上就是出现异常进行回滚没有更新也没有添加数据。
但是结果让我很诧异,添加了一条数据,那么就是没有事务失效了。(看到这个的时候我在想今天的面试官是不是想问我这个。)
资料显示说因为是捕获异常后事务将会失效。
那么我就想。我从dao层将异常往service层抛,抛到service层后再将异常往controller层抛,这样我在controller层去捕获这个异常,返回到view时候给出一个友好的界面。这样应该可以吧。
试验了一把发现确实如此。这样在service就保证了事务的原子性。
0 0
- 关于spring在service层catch异常而出现无法回滚的问题的解决
- 解决AssignmentHandler 出现异常事务无法回滚问题
- 关于Spring事务管理无法回滚的问题
- Service层事务不能回滚的解决方式
- 关于Spring事务回滚的问题
- 关于Spring事务回滚的问题
- 关于Spring事务回滚的问题
- 关于Spring事务回滚的问题
- spring的事务管理的原理(如何设置在Action或者在Service层进行事务拦截及其回滚)
- 笔记有关在spring使用aop在实现service层时出现的问题
- 解决spring 自动扫描包的时候出现 service无法自动注入的问题
- Spring配置事务 service 异常捕获回滚问题
- Spring配置事务 service 异常捕获回滚问题
- 关于Spring的@Transactional注解失效以及事务无法回滚问题
- Spring中发生异常的事务回滚问题
- 关于Spring mvc 不会滚的问题
- 使用Spring管理,在try-catch后不会滚解决
- Spring-Service-事务中线程异常执行事务回滚的方式
- SSH学习之四 OpenSSH安全
- Android View类属性及方法
- Android中实现ScrollView的滚动事件监听
- VB.NET视频总结——后续篇
- JS 小知识点的整理__(2)
- 关于spring在service层catch异常而出现无法回滚的问题的解决
- 深入理解计算机系统习题答案2.59
- 跟随手指的小球
- 第九周 项目一
- ViewStub
- hdu-1565(方格取数(1))---状态压缩
- luanqibazao
- 面试经典(24)--二叉搜索树和双向链表
- 因子与阶乘