@TableId注解详细介绍

这篇具有很好参考价值的文章主要介绍了@TableId注解详细介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

@TableId注解是专门用在主键上的注解,如果数据库中的主键字段名和实体中的属性名,不一样且不是驼峰之类的对应关系,可以在实体中表示主键的属性上加@Tableid注解,并指定@Tableid注解的value属性值为表中主键的字段名既可以对应上。

比如数据中的表中的字段是vote_id,但是实体类是voteId。那么就需要在voteId上打上这个注解,如下:

/** 主键 */
    @TableId("vote_id")
    @TableId(value = "vote_id")
    private Long voteId;

@TableId注解源码

package com.baomidou.mybatisplus.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface TableId {
    String value() default "";

    IdType type() default IdType.NONE;
}

@TableId注解使用介绍

从源码可以看出,设置主键映射时:

value映射主键字段的名字

type 设置主键类型、主键的生成策略

描述
AUTO 数据库自增
NONE MP set主键,雪花算法实现
INPUT 需要手动赋值
ASSIGN_ID MP分配ID,Long、Integer、String
ASSIGN_UUID 分配UUID,String

一、数据库自增 AUTO

开发者无需赋值,自己根据当前表中id最大值自增+1

手动赋值的话还是使用数据库id中最大值+1 的方式赋予id

public class VoteInfo extends MybatisPlusBaseEntity {
    @TableId(type = IdType.AUTO)
    private Long voteId;
}

二、自动生成主键 使用雪花算法 NONE

配合新增使用 用的时候需要注意主键长度 但是MyBatisPlus3.20的时候是采取该字段最大值+1,数据类型改int为long,注意雪花id生成的长度否则会报错,同时如果主键如果数据类型为int需要修改成Long。

public class VoteInfo extends MybatisPlusBaseEntity {
    @TableId(type = IdType.NONE)
    private Long voteId;
}


三、开发者手动赋值 INPUT

如果插入操作中,没有对id进行赋值,那么存进数据库中的将为0(long)数据库一般会采取自增id的方式处理 当前数据库编号的值+1。如果赋值了,就用开发者所赋的值。

四、ASSIGN_ID

等同于ID_ WORKER(3) ,ID_ WORKER STR(3) ,使用mp自动赋值 采取雪花算法,但是MyBatisPlus3.20的时候是采取该字段最大值+1

五、ASSIGN_UUID

等同于UUID,要求主键类型必须是String类型,会自动生成UUID进行赋值,需要考虑数据库的字段设计,数据库中的int类型的,所以存不进去,但因为主键自增,如果要修改int类型为varchar类型的话,需要去除主键自增。文章来源地址https://www.toymoban.com/news/detail-438641.html

到了这里,关于@TableId注解详细介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GPT中的temperature参数不是用在对话的而是用在调用OPEN API过程中的

    自从吴恩达OPENAI《ChatGPT 提示工程》放出后,各个层面反响热列。很多人看到了temperature这个参数,都以为在对话中或者说对话的末尾放上一个temperature=0-2的值就可以达到让GPT极大的发挥出自我创造能力、甚至写文章天马行空。 笔者这边觉得有义务指出这种用法是完全没有理

    2024年02月09日
    浏览(35)
  • SpringMVC及注解介绍(一)

    目录 1.什么是 Spring MVC? 2.创建一个SpringMVC项目 3.MVC定义 4.MVC和SpringMVC的关系 5.如何学SpringMVC 6.SpringMVC注解介绍 1.@RequestMapping 2.@ResponseBody 3.@RestController = @Controller + @ResponseBody 4.更换五大注解 5.@RequestMapping 是 post 还是 get 请求? 6.@GetMapping(设置请求方法)  7.获取参数 7.1通过

    2024年02月16日
    浏览(35)
  • 详细分析Java中的@JsonFormat注解和@DateTimeFormat注解

    下文中涉及MybatisPlus的逻辑删除的知识,可看我之前这篇文章:详细讲解MybatisPlus实现逻辑删除 对应的Navicat设置数据库最新时间可看我这篇文章:Navicat 设置时间默认值(当前最新时间) 为了使 @JsonFormat 生效,项目必须引入 Jackson 库的相关依赖: (如果是springboot项目,可不

    2024年01月23日
    浏览(39)
  • SpringBoot中异步注解@Async介绍

    介绍在SpringBoot项目中,使用@Async不生效的原因介绍和分析; 代码参考gitee仓库:spring-boot-2022-05: 主要是介绍Spring框架注解、常用的功能的使用案例,记录平时遇到的技术知识点,进行实践操作; - Gitee.com 1.启动类中没有添加注解@EnableAsync; 2.同一个类中调用含有@Async的方法;因

    2023年04月17日
    浏览(35)
  • @Nullable 注解的详细用法

    最近发现之前写的代码生成器(entity、dao、service、controller、vue) 有点bug,在Service层判断空的时候,少了一部分条件。所以补充上了,随后又同事问我在代码中发下了@Nullable注解不知道怎么用?脑子是个好东西,可以审核没带啊!哪有广告? 起初,以为这么简单的一个常用

    2024年02月04日
    浏览(35)
  • 芯片封装中的POD是什么意思?用在哪里

    POD: 封装外形图 在英语中的定义:Package Outline Drawing POD的含义 下图显示了英语中POD的定义之一。 以下看看实际POD的案例: T型金属圆形封装 T形金属圆形封装 TO-257金属封装 TO-257金属封装-细节图 所以,从上面示例来看,所有的芯片都会用到POD,不仅仅是封装设计阶段。 学习

    2024年02月12日
    浏览(58)
  • Springboot @Validated注解详细说明

    在Spring Boot中,@Validated注解用于验证请求参数。它可以应用在Controller类或方法上 1、引入依赖 2、参数说明与使用示例 注解 验证的数据类型 描述 @NotNull 任意类型 验证属性不能为null @NotBlank 字符串 验证字符串属性不能为空且长度必须大于0 @Size(min,max ) CharSequence Collection Map

    2024年02月14日
    浏览(37)
  • Spring(18) @Order注解介绍、使用、底层原理

    @Order :是 spring-core 包下的一个注解。@Order 作用是 定义 Spring IOC 容器中 Bean 的执行顺序 。 注意: Spring 的 @Order 注解或者 Ordered 接口,不决定 Bean 的加载顺序和实例化顺序,只决定 Bean 注入到 List 中的顺序。 @Order 注解接受一个整数值作为参数, 数值越小表示优先级越高 。

    2024年02月20日
    浏览(37)
  • 详细分析SpringSecurity中的@PreAuthorize注解

    在Java中, @PreAuthorize 是Spring Security框架中的一个注解,用于在方法调用之前对用户的权限进行验证。 允许在方法级别定义访问控制规则,确保只有满足指定条件的用户才能调用该方法 这个注解通常与Spring的AOP(面向切面编程)结合使用,推荐阅读: Spring框架从入门到学精(

    2024年04月28日
    浏览(33)
  • Spring Boot常用注解详细说明

    Spring Boot是一个用于构建独立的、基于Spring框架的Java应用程序的开发框架。它提供了许多注解,用于简化开发过程并提供特定功能。下面是一些常用的Spring Boot注解,按照功能进行分类说明: @RestController :将类标记为RESTful风格的控制器,自动将返回值转换为JSON响应。 @Cont

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包