首先确认调用方法上是否添加了@Transactional 注解

1.在需要事务管理的地方加@Transactional 注解。@Transactional 注解可以被应用于接口定义和接口方法、类定义和类的 public 方法上。

2.@Transactional 注解只能应用到 public 可见度的方法上。 如果你在 protected、private 或者 package-visible 的方法上使用 @Transactional 注解,它也不会报错, 但是这个被注解的方法将不会展示已配置的事务设置。

3.注意仅仅 @Transactional 注解的出现不足于开启事务行为,它仅仅 是一种元数据。必须在配置文件中使用配置元素,才真正开启了事务行为。(spring配置文件中,开启声明式事务)

4.通过 元素的 “proxy-target-class” 属性值来控制是基于接口的还是基于类的代理被创建。如果 “proxy-target-class” 属值被设置为 “true”,那么基于类的代理将起作用(这时需要CGLIB库cglib.jar在CLASSPATH中)。如果 “proxy-target-class” 属值被设置为 “false” 或者这个属性被省略,那么标准的JDK基于接口的代理将起作用。

5.Spring团队建议在具体的类(或类的方法)上使用 @Transactional 注解,而不要使用在类所要实现的任何接口上。在接口上使用 @Transactional 注解,只能当你设置了基于接口的代理时它才生效。因为注解是 不能继承 的,这就意味着如果正在使用基于类的代理时,那么事务的设置将不能被基于类的代理所识别,而且对象也将不会被事务代理所包装。

6.@Transactional的事务开启 ,或者是基于接口的 或者是基于类的代理被创建。所以在同一个类中一个无事务的方法调用另一个有事务的方法,事务是不会起作用的。

特别注意第6点:同一个类中一个无事务的方法调用另一个有事务的方法,事务是不会起作用的。这一点引起了我的注意,可能我的加了注解@Transactional的departingCar方法也是被类里另一个没有开启事务的方法调用,如果真的是这样,所有一切都解释的通了。

Spring事务报错Transaction synchronization is not active相关推荐

  1. Spring事务报错: org.springframework.transaction.UnexpectedRollbackException

    异常信息: 出现了不可预知的回滚异常,因为事务已经被标志位只能回滚,所以事务回滚了. org.springframework.transaction.UnexpectedRollbackExcepti ...

  2. 记一次事务报错问题 Transaction synchronization is not active

    问题场景 在一次请求的返回结果中出现了这个错误信息"Transaction synchronization is not active",意思是"事务同步器没有激活&qu ...

  3. SAP QM 执行事务代码QS51维护使用决策的选择集,系统报错 – Transaction no longer valid for catalog ‘3’ -

    SAP QM 执行事务代码QS51维护使用决策的选择集,系统报错 – Transaction no longer valid for catalog '3' - 执行事务代码QS51,试图为工厂NMD ...

  4. SAP RETAIL 执行事务代码WRP1,报错-Transaction WRP1 cannot be executed-

    SAP RETAIL 执行事务代码WRP1,报错-Transaction WRP1 cannot be executed- 执行事务代码WRP1试图为物料触发自动补货订单,系统报错:Transacti ...

  5. 解决Spring Boot报错Mapped Statements collection already contains value for...Error while adding the mapp

    解决Spring Boot报错Mapped Statements collection already contains value for...Error while adding the mapp ...

  6. Spring data报错:Inferred type 'S' for type parameter 'S' is not within its bound;

    Spring data报错:Inferred type 'S' for type parameter 'S' is not within its bound; 参照 org.springframewo ...

  7. Spring aop报错:com.sun.proxy.$Proxyxxx cannot be cast to yyy

    在使用Spring AOP时,遇到如下的错误: Exception in thread "main" java.lang.ClassCastException: com.sun.p ...

  8. Spring Boot 报错ThreadPoolTaskExecutor : Shutting down ExecutorService ‘applicationTaskExecutor‘

    问题 Spring Boot 报错ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor' 原因 ...

  9. 启动Spring项目报错,Springboot启动报错 Disconnected from the target VM 解决过程

    启动Spring项目报错,Springboot启动报错 Disconnected from the target VM 解决过程 大概率是缺少了一下依赖 <dependency><g ...

最新文章

  1. CA ARCserve Backup系列(3)—安装代理(Linux篇)
  2. 关于多路复用技术的思考
  3. 怎样取SAP中的业务对象状态
  4. wxWidgets:wxHTML 概述
  5. 【代码块】代码块使用注意事项和细节讨论
  6. 上传本地项目到gitee_用git上传本地文件到码云gitee的方法
  7. .net一个函数要用另一个函数的值_Mysql:条件判断函数-CASE WHEN、IF、IFNULL详解
  8. promise的状态值_什么是Promise,Promise的三种状态
  9. 粗谈MySQL事务的特性和隔离级别
  10. 漫谈CMS:ZOOMLA、NETCMS、风讯、动易异同
  11. c语言1颗*到5颗*,刚学c语言,老师让用if编一个五个数字从大到小的排序,有那个大神能帮我,谢谢啦...
  12. 深度学习:Image Object Detection方法
  13. WORDNET与HOWNET之比较
  14. 开源面向对象数据库 db4o 之旅,第 1 部分: 初识 db4o
  15. 从零实现加密隧道(二):socks5 协议详解
  16. 单片机最小系统着实让人着迷
  17. 手把手教你实现嵌入式SNMP代理第1部分-熊健-专题视频课程
  18. 【9102年】考研还是找工作?分享看完心得体会(如果你错过了月亮,那就不要错过星星了)
  19. 根据给定的三边,判断能否则组成一个三角形若能用这三个数作为边长组成三角形( 任意两边之和大于第三边),能组成三角形计算并输出该三角形的面积,否则输出Can‘t。 (提示:Can‘t输出直接放到双引号中
  20. yolo3训练人脸检测模型

热门文章

  1. 工业交换机的单模多模是什么意思?
  2. PDPS软件:带颜色的机器人工作站二维布局图JT格式文件转换方法
  3. html5 在线 ppt 制作软件,HTML5 幻灯片相册制作工具(HTML5 Slideshow Maker)
  4. Html+Tomcat+Http协议介绍
  5. 做前端的你,如何克服技术焦虑?
  6. 微信小程序 --- 不在以下合法域名列表中请参考文档
  7. 怎么控制latex插图的位置_[转载](转)LaTeX 控制图片的位置
  8. win10+anaconda+pycharm python画图完整过程
  9. 中位数 POJ3784
  10. 微信小程序笔记、小程序打印