1.首先在对应的数据表中添加version字段
ALTER TABLE USER ADD COLUMN `version` INT;
2.在对应的实体类上添加@Version和@TableField(fill = FieldFill.INSERT)
@Version
@TableField(fill = FieldFill.INSERT)
private Integer version;
3.在使用注解@TableField(fill = FieldFill.INSERT)时自动填充值
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("version",1,metaObject);
}
}
4.添加乐观锁插件
@Configuration
@EnableTransactionManagement
@MapperScan("xxx.xxx.xxx.xxx")
public class MybatisPlusConfig {
/**
* 乐观锁插件
* @return
*/
@Bean
public OptimisticLockerInterceptor getOptimisticLockerInterceptor(){
return new OptimisticLockerInterceptor();
}
}
注意:乐观锁要想生效,数据首先调用对应的查询方法之后在调用修改方法才能触发乐观锁;否则乐观锁不会生效