并发你这后端改了也没啥用
实际上最有可能出现的并发问题不在这两行之间。而是前端的问题
比如
1 、甲打开了网页,拿到了 a 和 b 和两个字段,然后就去忙别的去了
2 、乙也打开了网页,拿到了 a 和 b ,然后把 b 修改成 b1 ,接着把 a 和 b1 一起提交上去
3 、甲回来了,把 a 修改成了 a1 ,然后把 a1 和 b 一起提交上去了
4 、最终就输 a1 和 b ,b1 的修改丢失了
正常前端都不会只传变更了的字段,而是偷懒一股脑都传上来
所以你后端其实根本判断不了
不过这其实也没啥大问题,因为通常来说一个表单的正确性就是取决于最后修改他的人而已
既然最后修改他的人觉得没问题,那其实也确实没啥大问题
真要说起来,这才是“正确”的(或者说是现代的)写法,前提是有乐观锁或者分布式锁
业务系统用数据库事务来做并发控制是个很不好的做法
参考 DDD 中的 repository 和 unit of work 模式
https://martinfowler.com/eaaCatalog/repository.html
https://martinfowler.com/eaaCatalog/unitOfWork.html