Skip to content

乐观锁(Optimistic Lock)

MyBatis-Plus 支持基于版本号的乐观锁(@Version 注解),在高并发场景下用于防止脏写。

使用方法

  • 在实体类中添加版本字段并使用 @Version 注解:
java
@Version
private Integer version;
  • 更新时,MyBatis-Plus 会在 SQL 中带上版本号判断,例如:
sql
UPDATE user SET name = 'x' WHERE id = 1 AND version = 3

如果版本不匹配,更新将返回 0,表示冲突,需要重试或返回错误给上层。

配置

无额外配置,直接在实体上使用 @Version 即可。对于复杂场景可结合重试机制或悲观锁策略。