1. @TableId

1.1 @TableId 可选类型

不添加注解时,默认使用ID_WORKER(3)

public enum IdType {
    /**
     * 数据库ID自增
     */
    AUTO(0),
    /**
     * 该类型为未设置主键类型(将跟随全局)
     */
    NONE(1),
    /**
     * 用户输入ID
     * <p>该类型可以通过自己注册自动填充插件进行填充</p>
     */
    INPUT(2),

    /* 以下3种类型、只有当插入对象ID 为空,才自动填充。 */
    /**
     * 全局唯一ID (idWorker)
     */
    ID_WORKER(3),
    /**
     * 全局唯一ID (UUID)
     */
    UUID(4),
    /**
     * 字符串全局唯一ID (idWorker 的字符串表示)
     */
    ID_WORKER_STR(5);
    }
1.2 @TableId(value = “id”,type= IdType.AUTO)

使用条件:
id 类型可以是Interger/Long;
数据库主键id,mysql必须设置自增主键,postgreSQL必须设置自增序列(例如:主键类型 serial4),才能够使用此注解。

1.3 @TableId(value = “id”,type= IdType.ID_WORKER)

使用条件:
id 类型必须是Long;
因为ID_WORKER 生成的snowflakeId 是19位的全局id。

2. 非主键字段添加@TableId

如果一张表只是一个关联表,非主表,只保存了主表的id。但任然需要通过这个字段对关联表进行CRUD。
此时只需要在关联表的该字段上加@TableId ,即可使用 mybatis-plus mapper自带的方法;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;

@Data
@TableName("fbr_basic_info")
public class FBRBasicInfoEntity {
    @TableId
    private Integer fbrInfoId;
    private String fbrType;
    private String fbrTypeCode;
    }

使用示例
查询

FBRBasicInfoEntity basicInfoEntity = fbrBasicInfoMapper.selectById(fbrInfoId);

新增

 FBRBasicInfoEntity basicInfoEntity = FBRAssemble.trans(basicInfoVO);
fbrBasicInfoMapper.insert(basicInfoEntity);

修改

fbrBasicInfoMapper.updateById(basicInfoEntity);

亲测可用。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐