@TableName
注解作用:设置实体类对应的表明
value作用:value指定数据库中的表名
-
@TableName(value = "u_user") user实体类
yml配置:
global-config: db-config: table-prefix: u_ // 库名默认前缀
@TableId
如果使用的雪花算法前端可能会精度丢失那么使用 将long型转为字符型 还可以使用MVC扩展器
@JsonSerialize(using = ToStringSerializer.class)
作用:将属性所对应的字段指定为主键
-
@TableId(value="id",type = IdType.AUTO) //代表自增算法 默认雪花
1bit 如果是正数默认0 ,41bit 时间戳,10bit 机器码 12bit序列号
分布式 的 ID 分发器 64 bit 的 long 型作为全局唯一ID 引入时间戳所以默认会自增(datacenterId和workerId)
yml配置:
global-config: db-config: id_type: 自增类型
@TableField
公共字段的自动填充 比如 更新时间 删除时间 插入时间等
如果不加这个注解的话,就会默认两个单词中间加一个—,如下图所示 应该与表中字段对应
* 字段自动填充策略 FieldFill fill() default FieldFill.DEFAULT;
public enum FieldFill { DEFAULT(0, "默认不处理"), INSERT(1, "插入填充字段"), UPDATE(2, "更新填充字段"), INSERT_UPDATE(3, "插入和更新填充字段");
再实现 MetaObjectHandler 编写自己的处理器 来填充字段数据 用metaObject来set值
@TableLogic
0表示未删除状态,1表示删除状态
物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除的数据
逻辑删除:假删除,将对应数据中代表是否被删除字段的状态修改为“被删除状态”,之后在数据库 中仍旧能看到此条数据记录
使用场景:可以进行数据恢复,对删除的数据进行恢复的操作
我们对数据进行delete删除之后,我们再进行查询操作时查询不到的(这个时候不用指定deleted=0),但是数据还是存在在数据库中