在MyBatis Plus中,@TableId注解的type属性有哪些取值?分别代表什么含义?

在 MyBatis Plus 中,@TableId 注解的 type 属性有以下取值及含义:

  1. IdType.AUTO

    • 含义:数据库自增策略,由数据库自动生成主键值。适用于数据库支持自增主键的情况,例如 MySQL 中的自增整数类型主键。
    • 示例:
      import com.baomidou.mybatisplus.annotation.TableId;
      import com.baomidou.mybatisplus.annotation.IdType;
      
      public class User {
          @TableId(type = IdType.AUTO)
          private Long id;
          // 其他字段...
      }
      
  2. IdType.INPUT

    • 含义:用户输入 ID 值策略,由用户在代码中手动设置主键值,然后插入到数据库中。这种方式适用于需要自定义主键值或者使用分布式唯一 ID 生成器的场景。
    • 示例:
      import com.baomidou.mybatisplus.annotation.TableId;
      import com.baomidou.mybatisplus.annotation.IdType;
      
      public class User {
          @TableId(type = IdType.INPUT)
          private Long customId;
          // 其他字段...
      }
      
  3. IdType.ID_WORKER

    • 含义:使用 MyBatis Plus 内置的分布式唯一 ID 生成器(如 IdWorker)生成主键值。适用于分布式系统中需要全局唯一主键的情况。
    • 示例:
      import com.baomidou.mybatisplus.annotation.TableId;
      import com.baomidou.mybatisplus.annotation.IdType;
      
      public class User {
          @TableId(type = IdType.ID_WORKER)
          private Long id;
          // 其他字段...
      }
      
  4. IdType.UUID

    • 含义:使用 Java 的 UUID(Universally Unique Identifier)生成主键值。生成的主键是一个随机的、全球唯一的字符串。适用于不依赖数据库自增功能且需要全局唯一主键的场景。
    • 示例:
      import com.baomidou.mybatisplus.annotation.TableId;
      import com.baomidou.mybatisplus.annotation.IdType;
      
      public class User {
          @TableId(type = IdType.UUID)
          private String uuidId;
          // 其他字段...
      }
      
  5. IdType.NONE

    • 含义:未设置特定的主键生成策略,需要手动在代码中处理主键值的生成和赋值。通常在一些特殊情况下使用,例如需要使用数据库的存储过程生成主键值或者从外部系统获取主键值。
    • 示例:
      import com.baomidou.mybatisplus.annotation.TableId;
      import com.baomidou.mybatisplus.annotation.IdType;
      
      public class User {
          @TableId(type = IdType.NONE)
          private Long customGeneratedId;
          // 其他字段...
      }
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值