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.csdn.net/dj1955/article/details/122301529?spm=1001.2014.3001.5502

你可能感兴趣的:(java,java,mybatis)