乐观锁 并发问题

先查,然后更新,继续执行

并发存在问题,应当进入就锁住然后开始执行,或者有依赖数据库 update where 检查结果是否正确然后继续执行

锁事物

先事物,后锁,然后解锁,提交事物

  1. 声明式事物,先锁后事物
  2. 锁注解@Order(Integer.MIN_VALUE) 提升优先级

Mybatis 一级缓存

  1. 同一个事物内
  2. 对同样条件查询结果做了修改
  3. 第二查的时候使用缓存,导致数据不一致