修改会触发乐观锁
/**
*
* ==> Preparing: UPDATE user SET name=?, age=?, email=?, create_time=?, update_time=?, author=?, version=?
* WHERE id=? AND version=? AND deleted=0
* <== Updates: 0
* count1 = 0
* count2 =1
*/
@Test
public void tetsOptimistcLOcker(){
User user1 = userMapper.selectById(14416651117308l);
user1.setName("jack");
User user2 = userMapper.selectById(14416651117308l);
user2.setName("jim");
int count2 = userMapper.updateById(user2);
int count1 = userMapper.updateById(user1);
System.out.println(count1);
System.out.println(count2);
}
为什么这种修改不会触发乐观锁 ?
/**
*
* ==> Preparing: UPDATE user SET name=?, update_time=? WHERE id=? AND deleted=0
* <== Updates: 1
* count1 = 1
* count2 = 1
*
*/
@Test
public void testOptimisticLocker(){
//线程一
User user1 = new User();
user1.setId(14416651117308l);
user1.setName("lucymary111");
//线程一
User user2 = new User();
user2.setId(14416651117308l);
user2.setName("lucymary2222");
int count2 = userMapper.updateById(user2);
int count1 = userMapper.updateById(user1);
System.out.println(count1);
System.out.println(count2);
}
配置
//spring boot
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
//注解实体字段 @Version 必须要!
@Version
private Integer version;