mybatisplus的乐观锁插件
/**
* 乐观锁插件
* @return
*/
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
实体类增加这些字段并添加响应的注解
/**
* 版本号
*/
@Version
@TableField(fill = FieldFill.INSERT_UPDATE) //插入和更新时更改
private Long version;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT) //插入时更改
private Date createTime;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE) //插入和更新时更改
private Date updateTime;
自定义一个处理类实现MetaObjectHandler接口
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* @Description: MyMetaObject 对类的公共字段进行填充处理类
* @Author: Anhk丶
* @Date: 2020/9/5 16:11
* @Version: 1.0
*/
@Component
public class MyMetaObject implements MetaObjectHandler {
/**
* 插入元对象字段填充(用于插入时对公共字段的填充)
*
* @param metaObject 元对象
*/
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
this.setFieldValByName("version", 1L, metaObject);
}
/**
* 更新元对象字段填充(用于更新时对公共字段的填充)
*
* @param metaObject 元对象
*/
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}
运行程序就可以了