Closing non transactional SqlSession
目录
解决方式:
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相关推荐
- Closing non transactional SqlSession导致spring事务不生效
记一次找了一天的bug!!!!spring版本5.1.8.RELEASE 错误:Closing non transactional SqlSession!父子容器扫描重复问题 网上看了很多解决办法,主 ...
- 解决Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlS..(22.11.20)
解决过程: 1.初始方案 在我们没有开启事务的时候,如果使用mybatis,我们会在日志中看到如下的内容:"Closing non transactional SqlSession" ...
- spring + mybatis 注解 @Transactional失效
1.问题 在使用@Transactional注解管理事务的时候会出现很多错误,比如: *** was not registered for synchronization because synchr ...
- SqlSession was not registered for synchronization because synchronization is not active
针对数据进行添加操作时报错! 最后发现了,是在实体类中一个属性问题,是基本数据类型long则一直id为0,当对id的定义为Long引用数据类型时,就会走雪花算法,id就不是0,就不会报以下的错误! 针 ...
- “SqlSession[xxx] was not registered for synchronization because synchronization is not active”问题成功解决
一.问题详情: spring boot项目控制台打印如下日志,但程序可正常运行,并未报错: ????D:JavaJDKjdk1.8.0_261injava.exe -XX:TieredStopAtLe ...
- SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@xxx] was not registered for synchro
目录 1.报错场景 2.问题原因及解决办法 1.报错场景 在搞SpringBoot项目的时候,把Mybatis打印日志的配置打开后,发现每条Sql打印的时候都会在前面打印如下的信息,强迫症受不了,得查 ...
- SqlSession
在Mybatis中SqlSessionFactory负责创建SqlSession,一旦创建成功,就可以用SqlSession实例来执行映射语句,commit,rollback,close等方法.但当使 ...
- Spring基础专题——第七章(持久层整合)
前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...
- Spring3.2.8+Mybatis3.2.6 多数据源基于BaseDAO的配置
Spring3.2.8+Mybatis3.2.6 多数据源基于BaseDAO的配置 配置数据源为: MySQL5.5.6 H2Database 1.3.75 这个配置起来比较麻烦,本文这种方法有点麻烦 ...
最新文章
- Tomcat之the jre_home environment variable is not defined correctly this environment variable is need
- 网络工程师_记录的一些真题_2005下半年上午
- Java如何执行操作系统的CMD命令行
- 在ASP.NET MVC应用中开发插件框架(中英对照)
- mysql中engine=innodb和engine=myisam的区别详解
- [物理学与PDEs]第1章第4节 电磁能量和电磁动量, 能量、动量守恒与转化定律 4.3 电磁能量 (动量) 密度, 电磁能量流 (动量流) 密度...
- pulsar配置文件常用配置项
- 利用PCF8591进行AD转换
- Nginx学习总结(7)——Nginx配置HTTPS 服务器
- java刷机_java非智能手机能不能通过刷机安装一个安卓智能系统
- Vue计算属性之基本使用---vue工作笔记0004
- (转)“在证券行业,技术不重要,不要过分强调!”
- 、nohup 不中断后台执行
- crash常用的调试命令
- 关于三极管处于临界饱和状态的分析
- 计算机控制试题库 百度文库,计算机控制技术练习题附答案_百度文库.doc
- Linux XFS 文件系统文件的删除恢复
- cm-14.1 Android系统启动过程分析(二)-Zygote进程启动过程
- win10录屏有噪音_我的电脑是win10的,用Ev录屏有杂音,之前我调了声卡驱动,就没了,现在重装调了一下又有了...
- 【经典蓝牙】蓝牙 A2DP协议分析