1、在接口中如果没有存在事务进行插入和更新操作,会存在一个问题,就是可能导致结果异步,出现脏读的问题;
比如,针对A表进行插入和更新操作,然后下一步是进行查询操作,当数据量比较大的时候,因为mybatisplus 里的updateById的方法,每次调用的时候,它只是提交一个指令给到数据库,然后提前返回1的结果回来,此时进行查询的话,如果数据量大,更新或者插入的速度变慢的话,此时selectById操作后,会拿到更新之前的数据,从而导致脏读的问题;
#解决办法:
在方法里加入事务操作,如果常规的
@Transactional(rollbackFor = Exception.class)标签无效的话,就改用下面的事务
@Autowired
private TransactionTemplate transactionTemplate;
transactionTemplate.execute((executeStatus)->{//业务});标签:mybatisplus,更新,插入,脏读,数据量,操作,注入 From: https://www.cnblogs.com/huangwentian/p/16976625.html