Spring Boot 项目运行报错:SqlSession 未注册,如何排查并解决?

spring boot 项目运行报错:sqlsession 未注册,如何排查并解决?

spring boot 项目突然报错:sqlsession 未注册

问题描述:

用户运行的 spring boot 项目在运行过程中突然报错,错误信息如下:

creating a new sqlsession
sqlsession [org.apache.ibatis.session.defaults.defaultsqlsession@2dbe837b] was not registered for synchronization because synchronization is not active

用户表示项目代码未修改,此前一直运行良好,也没有进行任何配置修改。

错误分析:

根据错误信息,可以发现 mybatis 在创建新的 sqlsession 时遇到问题,由于同步未启用,sqlsession 未被注册。

问题解决:

这个问题可能是由于 mybatis 配置文件中的错误导致的。用户提供了 spring boot 项目的 yml 配置文件,其中 mybatis 配置如下:

mybatis-plus:
  config-location: classpath:mybatis/mybatis-config.xml
  mapper-locations: classpath:mybatis/mapper/*.xml

经过分析,此配置中可能存在以下问题:

  • config-location 缺少点号:config-location 应指向 mybatis 主配置文件,一般是 mybatis-config.xml。但此配置中缺少了前导的点号,导致 mybatis 无法找到配置文件。
  • 多余的点号:mapper-locations 的配置也存在多余的点号。正确的配置应该是:mapper-locations: classpath:mybatis/mapper/*.xml。

解决方案:

用户可尝试以下解决方案:

  1. 修改 config-location,加上前导点号:config-location: ./mybatis/mybatis-config.xml
  2. 删除 mapper-locations 中多余的点号:mapper-locations: classpath:mybatis/mapper/*.xml

参考资料:

  • [mybatis 官方文档 - 配置](https://mybatis.org/mybatis-3/zh/configuration.html)

以上就是Spring Boot 项目运行报错:SqlSession 未注册,如何排查并解决?的详细内容,更多请关注其它相关文章!