目录

解决方式:

1. 启动类添加注解

2. 方法添加注解

3. 调用该方法的地方进行异常捕捉


在执行sql的时候,出现 Closing non transactional SqlSession 找了很长时间才发现是什么原因。

解决方式:

1. 启动类添加注解

@EnableTransactionManagement

2. 方法添加注解

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)

spring的事物传播 propagation = Propagation.REQUIRED

REQUIRED -- 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
SUPPORTS -- 支持当前事务,如果当前没有事务,就以非事务方式执行。
MANDATORY -- 支持当前事务,如果当前没有事务,就抛出异常。
REQUIRES_NEW -- 新建事务,如果当前存在事务,把当前事务挂起。
NOT_SUPPORTED -- 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
NEVER -- 以非事务方式执行,如果当前存在事务,则抛出异常。
NESTED -- 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与REQUIRED类似的操作。
前六个策略类似于EJB CMT,第七个(PROPAGATION_NESTED)是Spring所提供的一个特殊变量。它要求事务管理器或者使用JDBC 3.0 Savepoint API提供嵌套事务行为(如Spring的DataSourceTransactionManager)

3. 调用该方法的地方进行异常捕捉

将捕捉的异常信息,直接抛出,查看日志信息,一般日志信息里面会有明确的标识大概是哪里的问题。

我是在对异常进行捕捉之后,做了其他的逻辑处理,没有打印到控制台,一直在尝试是什么原因造成的,最后打断点的时候,发现是 mybatisPlus 通过 do生成的sql里面,有一个 create 字段,create 在sql里面是个关键字(在测试或者正式的项目里面,避免使用sql关键字作为对象的属性),造成执行的时候出现异常。

一般来说,如果服务能够正常的启动,说明你的数据库配置是没有什么问题,如果是配置文件的问题项目是启动不起来的,有报错信息时候还好,没有报错信息的时候,就比较麻烦了:

1. 配置文件检查

2. 启动类的注解检查

3. pom依赖检查(我的测试服务,就是由于mybatisplus的pom依赖的问题,导致在启动服务的时候一直卡在 mybatisPlus的注册阶段)

Closing non transactional SqlSession相关推荐

  1. Closing non transactional SqlSession导致spring事务不生效

    记一次找了一天的bug!!!!spring版本5.1.8.RELEASE 错误:Closing non transactional SqlSession!父子容器扫描重复问题 网上看了很多解决办法,主 ...

  2. 解决Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlS..(22.11.20)

    解决过程: 1.初始方案 在我们没有开启事务的时候,如果使用mybatis,我们会在日志中看到如下的内容:"Closing non transactional SqlSession" ...

  3. spring + mybatis 注解 @Transactional失效

    1.问题 在使用@Transactional注解管理事务的时候会出现很多错误,比如: *** was not registered for synchronization because synchr ...

  4. SqlSession was not registered for synchronization because synchronization is not active

    针对数据进行添加操作时报错! 最后发现了,是在实体类中一个属性问题,是基本数据类型long则一直id为0,当对id的定义为Long引用数据类型时,就会走雪花算法,id就不是0,就不会报以下的错误! 针 ...

  5. “SqlSession[xxx] was not registered for synchronization because synchronization is not active”问题成功解决

    一.问题详情: spring boot项目控制台打印如下日志,但程序可正常运行,并未报错: ????D:JavaJDKjdk1.8.0_261injava.exe -XX:TieredStopAtLe ...

  6. SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@xxx] was not registered for synchro

    目录 1.报错场景 2.问题原因及解决办法 1.报错场景 在搞SpringBoot项目的时候,把Mybatis打印日志的配置打开后,发现每条Sql打印的时候都会在前面打印如下的信息,强迫症受不了,得查 ...

  7. SqlSession

    在Mybatis中SqlSessionFactory负责创建SqlSession,一旦创建成功,就可以用SqlSession实例来执行映射语句,commit,rollback,close等方法.但当使 ...

  8. Spring基础专题——第七章(持久层整合)

    前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...

  9. Spring3.2.8+Mybatis3.2.6 多数据源基于BaseDAO的配置

    Spring3.2.8+Mybatis3.2.6 多数据源基于BaseDAO的配置 配置数据源为: MySQL5.5.6 H2Database 1.3.75 这个配置起来比较麻烦,本文这种方法有点麻烦 ...

最新文章

  1. Tomcat之the jre_home environment variable is not defined correctly this environment variable is need
  2. 网络工程师_记录的一些真题_2005下半年上午
  3. Java如何执行操作系统的CMD命令行
  4. 在ASP.NET MVC应用中开发插件框架(中英对照)
  5. mysql中engine=innodb和engine=myisam的区别详解
  6. [物理学与PDEs]第1章第4节 电磁能量和电磁动量, 能量、动量守恒与转化定律 4.3 电磁能量 (动量) 密度, 电磁能量流 (动量流) 密度...
  7. pulsar配置文件常用配置项
  8. 利用PCF8591进行AD转换
  9. Nginx学习总结(7)——Nginx配置HTTPS 服务器
  10. java刷机_java非智能手机能不能通过刷机安装一个安卓智能系统
  11. Vue计算属性之基本使用---vue工作笔记0004
  12. (转)“在证券行业,技术不重要,不要过分强调!”
  13. 、nohup 不中断后台执行
  14. crash常用的调试命令
  15. 关于三极管处于临界饱和状态的分析
  16. 计算机控制试题库 百度文库,计算机控制技术练习题附答案_百度文库.doc
  17. Linux XFS 文件系统文件的删除恢复
  18. cm-14.1 Android系统启动过程分析(二)-Zygote进程启动过程
  19. win10录屏有噪音_我的电脑是win10的,用Ev录屏有杂音,之前我调了声卡驱动,就没了,现在重装调了一下又有了...
  20. 【经典蓝牙】蓝牙 A2DP协议分析

热门文章

  1. 12月2日-3日 | 数字化安全技术大会暨Ansys medini analyze 2021用户大会
  2. Matlab移动色带位置
  3. “气运”其实是可以改变的,方法也很简单!
  4. asp.net爱厨房美食菜谱系统
  5. 用js改变背景图的位置
  6. 点赋科技:一站式智能饮品柜,快捷创新的共享休闲方式
  7. Qualcomm 常用NV列表
  8. Nervos:为了更好的世界
  9. Nervos:链外扩容 + Layer 2才是区块链的未来(上)
  10. 删除MAC自动生成的DS_Store文件