一句话描述
springboot工程,调用IService.saveBatch()方法批量插入,当前事务未生效的时候,mybatisplus打印的日志信息与实际情况不符合,比较让人费解
当前使用版本(必填,否则不予处理)
3.4.2
该问题是如何引起的?(确定最新版也有问题再提!!!)
在使用了@Transactional注解,但事务未生效
重现步骤(如果有就写完整)
1.建立一个serviceimpl方法,打上@Transactional注解 2.调用saveBatch()方法进行批量保存
报错信息
WARN 20948 --- [nio-8888-exec-5] c.l.c.c.s.i.RolePermRelationServiceImpl : SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4c0bbc8d] was not registered for synchronization because DataSource is not transactional
如图,很明显是事务未被启用,但却提示的信息是当前的数据源不支持事务,而且与spring的提醒内容一模一样,但是却并不是同一个问题,很容易让人误解
Comment From: vwater
[30m2021-01-29 17:31:26[0;39m [XNIO-1 task-12] [39mDEBUG[0;39m [1;35morg.mybatis.spring.SqlSessionUtils[0;39m - Creating a new SqlSession [30m2021-01-29 17:31:26[0;39m [XNIO-1 task-12] [39mDEBUG[0;39m [1;35morg.mybatis.spring.SqlSessionUtils[0;39m - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3001995] was not registered for synchronization because synchronization is not active
Comment From: qmdx
修改为 https://github.com/baomidou/mybatis-plus/commit/770cf3c19ef0be0f589cf95992712d904b300e5a
Comment From: zer0131
使用saveBatch,明明开启了事务,为什么还提示这个呢?