java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java注解@TableId

java中常用注解@TableId的详细解析

作者:东方巴黎~Sunsiny

@TableId注解是一种常见的Java注解,通常在使用关系型数据库进行对象关系映射(ORM)时使用,这篇文章主要介绍了java中常用注解@TableId的详细解析,文中通过代码介绍的非常详细,需要的朋友可以参考下

@TableId 是 MyBatis-Plus 提供的一个注解,用于标识实体类中的主键字段。它可以帮助 MyBatis-Plus
在执行数据库操作时正确地识别和处理主键字段。

下面是对 @TableId 注解的详细解析:

@TableId 注解详解

1. 基本用途

标识主键:@TableId 注解用于标记实体类中的某个字段为主键字段。 自动生成策略:可以指定主键的生成策略,如自增、UUID 等。

2. 属性

value:主键字段的名称,默认值为字段名。 type:主键生成策略,常用的有以下几种:
IdType.AUTO:自动增长(适用于自增主键)。 IdType.NONE:不指定主键生成策略,需要手动赋值。
IdType.ASSIGN_ID:使用雪花算法生成唯一 ID(Long 类型)。 IdType.ASSIGN_UUID:使用 UUID
生成唯一 ID(String 类型)。 IdType.INPUT:手动输入主键值。

3. 示例

示例 1:基本用法

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("sys_job_log")
public class SysJobLog {

    @TableId
    private String jobLogId;

    private String jobName;
    private String jobGroup;
    private String invokeTarget;
    private String jobMessage;
    private String status;
    private String exceptionInfo;
    private Date createTime;

    // 其他字段和方法
}

在这个示例中,jobLogId 字段被标记为主键,但没有指定生成策略,因此默认为 IdType.AUTO。

示例 2:指定生成策略

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("sys_job_log")
public class SysJobLog {

    @TableId(value = "job_log_id", type = IdType.ASSIGN_UUID)
    private String jobLogId;

    private String jobName;
    private String jobGroup;
    private String invokeTarget;
    private String jobMessage;
    private String status;
    private String exceptionInfo;
    private Date createTime;

    // 其他字段和方法
}

在这个示例中,jobLogId 字段被标记为主键,并且指定了生成策略为 IdType.ASSIGN_UUID,即使用 UUID 生成唯一
ID。

使用场景

1.自增主键:

   @TableId(type = IdType.AUTO)
   private Long id;

2.UUID 主键:

   @TableId(type = IdType.ASSIGN_UUID)
   private String id;

3.手动赋值主键:

@TableId(type = IdType.INPUT)
private String customId;

注意事项

字段类型:

IdType.ASSIGN_ID 适用于 Long 类型的主键。 IdType.ASSIGN_UUID 适用于 String 类型的主键。

数据库兼容性:

不同的数据库对主键生成策略的支持可能有所不同,例如 MySQL 支持自增主键,而 Oracle 需要使用序列。

唯一性:

确保生成的主键值在数据库中是唯一的,以避免主键冲突。 通过使用 @TableId
注解,你可以灵活地管理和配置实体类中的主键字段,从而更好地与数据库进行交互。

总结 

到此这篇关于java中常用注解@TableId详细解析的文章就介绍到这了,更多相关java注解@TableId内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文