乐观锁(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 即可。对于复杂场景可结合重试机制或悲观锁策略。