当前使用版本(必须填写清楚,否则不予处理)

3.1.0

该问题是怎么引起的?(最新版上已修复的会直接close掉)

使用 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl#updateBatchById 批量更新, 然后进行查询,查询到的是更新之前的内容,无法查询到本次更新的最新内容。 请求结束后,数据库的数据正常更新了。 updateBatchById 和 saveBatch都是使用了openSession,但是saveBatch后可以在当前事务查询到插入的最新数据,而updateBatchById就不可以,请问是什么原因呢?谢谢大神解答!

重现步骤

使用 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl#updateBatchById 批量更新, 然后进行查询,查询到的是更新之前的内容,无法查询到本次更新的最新内容。 请求结束后,数据库的数据正常更新了

报错信息

Comment From: qmdx

这是事务级别问题,设置你的事务 Transactional 隔离策略 isolation 允许未提交事务读取

Comment From: nancheung

这是事务级别问题,设置你的事务 Transactional 隔离策略 isolation 允许未提交事务读取

@qmdx 你好,我的更新、查询操作都在同一个事务内,应该是可以查询到的。(打印了事务名,确定在同一事务) 我使用updateById更新单条记录,后续就可以查询到更新后的内容。 但是使用updateBatchById 后续查询到还是更新前的内容