mybatisplus 注入和更新问题

1、在接口中如果没有存在事务进行插入和更新操作,会存在一个问题,就是可能导致结果异步,出现脏读的问题;

比如,针对A表进行插入和更新操作,然后下一步是进行查询操作,当数据量比较大的时候,因为mybatisplus 里的updateById的方法,每次调用的时候,它只是提交一个指令给到数据库,然后提前返回1的结果回来,此时进行查询的话,如果数据量大,更新或者插入的速度变慢的话,此时selectById操作后,会拿到更新之前的数据,从而导致脏读的问题;

 

#解决办法:

     在方法里加入事务操作,如果常规的

@Transactional(rollbackFor = Exception.class)标签无效的话,就改用下面的事务
@Autowired
private TransactionTemplate transactionTemplate;
transactionTemplate.execute((executeStatus)->{//业务});
posted @ 2022-12-12 17:14  皇问天  阅读(274)  评论(0编辑  收藏  举报