当前使用版本(必须填写清楚,否则不予处理)
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 后续查询到还是更新前的内容