mybatis-plus实体类常用注解以及雪花算法
snowflake是Twitter开源的分布式ID生成算法,结果是一个ong型的ID。其核心思想是∶使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID ),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生4096个ID),最后还有一个符号位,永远是0。
所在包import com.baomidou.mybatisplus.core.toolkit.IdWorker;
package com.jt.pojo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; @Data @NoArgsConstructor @AllArgsConstructor @TableName(value="t_user") //当表名与实体类的驼峰命名不对应时使用 public class User implements Serializable { @TableId(type = IdType.NONE) //使用注解雪花算法生成id private Long id; private String name; private Integer age; private String email; @TableField(exist = false)//表示该属性不为数据库表字段,但又是必须使用的 private String height; @TableLogic(value="原值:false",delval="改值:ture") //逻辑删除 private Boolean del; @TableField(fill = FieldFill.INSERT) // 新增的时候填充数据 private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) // 新增或修改的时候填充数据 private Date updateTime; } 1.在调用BaseMapper的deleteById(id)或者调用IService的removeById(id)时,如果在实体类属性上加 @TableLogic(value=false,delval=true),不会真正去删除数据,而是执行更新操作 SQL:Update table set isDelete = true where id = xxxxxxx 2.注意其中注解@TableField(fill = FieldFill.INSERT)需要做配置,否则不能自动填充,结果为null 可以参考:https://blog..net/dj1955/article/details/122301529?spm=1001.2014.3001.5502
下一篇:
Delphi 多线程简单应用