MyBatis Plus 的乐观锁的使用
1、首先要向SpringBoot容器中注册
写在@Configuration的类下
/**
* 乐观锁
*/
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
2、实体类中设置一个属性@Version
@Data
public class TestEntity extends BaseEntity
{
private String id;
@Version
private Integer version;
private String value;
}
3、使用
首先数据库里写一条数据
version是数据库取出数据的版本,这里就为1
@Test
void contextLoads()
{
TestEntity test1 = new TestEntity();
test1.setId(1 + "");
test1.setVersion(1); // 里面写的是从数据库获取的数据版本
test1.setValue(2 + "");
TestEntity test = new TestEntity();
test.setId(1 + "");
test.setVersion(1);
test.setValue(3 + "");
testMapper.updateById(test1);
testMapper.updateById(test);
}
4、结果
只有第一次更新成功了,因为版本号是旧的数据库版本 1
第二次更新的时候,数据库里的版本被第一次更新为 2 ,而第二次更新时的数据版本为 1 ,所以更新失败