在controller 上面使用  @Transactional 注解时候发现数据没有回滚,在执行完update 更新语句,事务直接就commit 了,

此时方法尚未执行结束,数据库数据已经更新了。

第一反应应该是配置文件有问题,自己检查了spring.xml 和spring-mvc.xml文件,配置文件没什么问题。

在pring.mvc中  <tx:annotation-driven transaction-manager="transactionManager" />  也是有的

并且自动扫描了 service 层文件。百思不得其解

网上查询资料:导致该注解无效的原理多种多样,没有一种和我的是一样的。

有的说spring.xml和spring-mvc.xml 两个配置文件都对controller 或者 service 层进行了扫描,出现扫描重复,这种情况会导致

@Transactional 注解无效,但我的不属于这种情况,

还有的说,在同一个类中 ,一个没有配置@Transactiona 注解的方法,调用了令一个配置了@Transactiona 注解的方法,导致该注解无效。

我的也不属于这种情况。

还有的说,方法修饰符没有用public。。

这些都会导致该注解无效,但是我的不属于这些情况。

偶然尝试,在sevice 层接口实现类上面,配置了 @Transactional  debug 调试发现,数据回滚了,注解起作用了。

原来这个注解需要用在service 接口实现类 impl 中。

后来查资料:

若要@Transactional  注解配置了controller 层,需要将开启事务注解方式的 方式即:<tx:annotation-driven transaction-manager="transactionManager" /> 增加在spring-mvc.xml中

尝试了一下,有效。

												

@Transactional 无效原因的更多相关文章

  1. spring redis @Cacheable注解使用部分错误及无效原因

    spring redis @Cacheable注解使用部分错误及无效原因 说明:     spring项目用到redis注解无效,解决问题中遇到一堆BUG,各种搜索,看了许多错误解决方案一一测试,对于 ...

  2. Oracle Index 索引无效原因

    索引无效原因 最近遇到一个SQL语句的性能问题,修改功能之前的运行时间平均为0.3s,可是添加新功能后,时间达到了4~5s.虽然几张表的数据量都比较大(都在百万级以上),但是也都有正确创建索引,不知道 ...

  3. Spring 下默认事务机制中@Transactional 无效的原因

    Spring中 @Transactional 注解的限制1. 同一个类中, 一个nan-transactional的方法去调用transactional的方法, 事务会失效 If you use (d ...

  4. Spring @Transactional事物配置无效原因

    spring @transaction不起作用,Spring事物注意事项 1. 在需要事务管理的地方加@Transactional 注解.@Transactional 注解可以被应用于接口定义和接口方 ...

  5. div层调整zindex属性无效原因分析及解决方法

    在做的过程中,发现了一个很简单却又很多人应该碰到的问题,设置Z-INDEX属性无效.在CSS中,只能通过代码改变层级,这个属性就是z- index,要让z-index起作用有个小小前提,就是元素的po ...

  6. 【转载】div层调整zindex属性无效原因分析及解决方法

    在做的过程中,发现了一个很简单却又很多人应该碰到的问题,设置Z-INDEX属性无效.在CSS中,只能通过代码改变层级,这个属性就是z-index,要让z-index起作用有个小小前提,就是元素的pos ...

  7. springmvc的controller中使用@Transactional无效

    最近看mybatis的时候做了一个练习,但是进行事务处理的时候出了问题,如下 package com.henu.lz.controller; import org.springframework.be ...

  8. 【Web前端】div层调整zindex属性无效原因分析及解决方法

    在做的过程中,发现了一个很简单却又很多人应该碰到的问题,设置Z-INDEX属性无效.在CSS中,只能通过代码改变层级,这个属性就是z- index,要让z-index起作用有个小小前提,就是元素的po ...

  9. [项目总结]论Android Adapter notifyDataSetChanged与notifyDataSetInvalidated无效原因

    最近在开发中遇到一个问题,Adapter中使用notifyDataSetChanged 与notifyDataSetInvalidated无效,经过思考和网上查找,得出如下原因. 首先看一下notif ...

随机推荐

  1. OC调用c++函数

    1.调用的时候我明明改成了 .mm  , 也添加了libstdc++.dylib  调用自己(xcode )写的(cocoa static lib )c++  ,编译总是报找不到库里的函数, 最后我在 ...

  2. 【zabbix教程系列】一、初识zabbix

    一.zabbix是什么? Zabbix是最终的企业级软件,专为实时监控从数以万计的服务器,虚拟机和网络设备收集的数百万个指标而设计. 二.zabbix能做什么? 监控任何事物,为任何类型的IT基础设备 ...

  3. 【经典数据结构】B树与B+树

    本文转载自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html 维基百科对B树的定义为“在计算机科学中,B树 ...

  4. VMware Workstation 10序列号:

    VMware Workstation 10序列号:1Y0LW-4WJ9N-LZ5G9-Z81QP-92PN7

  5. python提取浏览器Cookie

    在用浏览器进行网页访问时,会向网页所在的服务器发送http协议的GET或者POST等请求,在请求中除了指定所请求的方法以及URI之外,后面还跟随着一段Request Header.Request He ...

  6. property与x.setter与x.deleter

    #测试property,x.setter,x.deleter class Test1: def __init__(self): self.__private = "alex" @p ...

  7. [luogu3380][bzoj3196]【模板】二逼平衡树【树套树】

    题目地址 [洛谷传送门] 题目大意 区间查询k的排名,查找k排名的数,单点修改,区间前驱,区间后继. 感想 真的第一次写树套树,整个人都不对了.重构代码2次,发现样例都过不了,splay直接爆炸,可能 ...

  8. 去掉 Chrome(V66) 新标签页的8个缩略图

    1.Chrome程序资源文件路径: C:\Program Files (x86)\Google\Chrome\Application\66.0.3359.181\resources.pak 2.下载C ...

  9. Zookeeper与Curator二三事【坑爹】

    起因:我的Dubbo服务起不来:我本地Zookeeper3.4.11,Curator4.1 Caused by: org.apache.zookeeper.KeeperException$Unimpl ...

  10. iframe 自适应高度、父子页面传值、回调

    总结一下最近用iframe遇到的问题与解决办法: 结构:主页面main.html,里面套用iframe.iframe不能出现滚动条,自适应子页面高度.内容多了滚动条是main.html页面的. 1.  ...