spring事务管理使用@transcational(noRollbackFor=Exception.class)注解无法取消事务回滚

xdy_cup 2018-01-11 10:19:44

按照spring的默认方式应该是对runtimeException的异常回滚,但是无论我使用noRollbackFor=Exception.class还是noRollbackFor=RuntimeException.class都不能取消事务回滚,请问这是什么原因呢?
...全文
1143 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sk815 2018-12-04
  • 打赏
  • 举报
回复
@Test 所有数据库变动都会回滚····
huan_1993 2018-12-03
  • 打赏
  • 举报
回复
noRollbackFor 表示遇到这些异常不会回滚,如果需要回滚,使用 rollbackFor
皮卡丘_后盾 2018-12-03
  • 打赏
  • 举报
回复
数据库用的什么引擎,MyISAM是不支持事务的
简单风 2018-12-03
  • 打赏
  • 举报
回复
看你的class,你的aop代理机制是什么?如果是默认的,代理是基于接口的代理,你这个类没有继承接口,事务注解根本不会起作用
  • 打赏
  • 举报
回复
首先确保你的注解起作用了,其次你事务开在了dao里面,看看调用该方法的地方是否开启了事务,存在事务的传播机制混乱的问题
xdy_cup 2018-01-11
  • 打赏
  • 举报
回复
@ #2 没有什么用,按照正常情况确实是像你说的那样,但是我就算捕获了异常,回滚还是执行了,我只有去掉@transactional 或者@Rollback(value=false)才能取消回滚
柯南在写代码 2018-01-11
  • 打赏
  • 举报
回复
你这个原因我不太了解,想让事务不回滚还有一个方法,就是在数据库交互的地方,用一个try catch捕获异常,这样的话,事务就会照常提交了.

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧