@TableName
表名注解,标识实体类对应的表
@TableId
主键注解,表示表对应的主键
@TableId(type = IdType.AUTO)//指定id
private Integer uid;
AUTO : 数据库ID自增
NONE :无状态
INPUT:insert前自行set主键值
ASSIGN_ID:分配ID,主键类型为Number
ASSIGN_UUID:分配UUID,主键类型为String
@TableFieId
属性 默认值 描述
Value ”“ 数据库字段名
exist true 是否为数据库表字段
select true 是否进行select查询
@TableLogic
表字段逻辑处理注解(逻辑删除)
属性 类型 描述
value String 逻辑未删除值
delval String 逻辑删除值
方法1.yml文件,全局配置:
global-config:
db-config:
logic-delete-field: deleted #全局逻辑删除的实体字段名,配置后不可用@TableLogic注解
logic-delete-value: 1 #逻辑已删除
logic-not-delete-value: 0 #逻辑未删除
方法2.entity
如果字段名与表内的没对上则用这个注释进行标记
@TableLogic
private String deleted;
@Version
乐观锁注解,当要更新一条记录的时候,希望这条记录没有被别人更新
乐观锁实现方式:
·取出记录时,获取当前version
·更新时,带上这个version
·执行更新时,set version = newVersion where version = oldVersion
·如果version不对,就更新失败
使用步骤:
1.为表新增字段:version
2.config(拦截器)
@Configuration
public class XXXInterceptor {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
}
3.entity(标识字段 (定义类型那个文件 比如:User))
@Version
private Integer version;