MybatisPlus联合主键注解

一、@TableId注解的用途

MybatisPlus是基于Mybatis的增强工具,提供了很多便捷的注解和方法。@TableId注解是其中的一个。它的作用是标注实体类的主键字段,并且可以指定主键策略。如果实体类没有声明主键字段,MybatisPlus会自动识别实体类中的名为"id"的字段为主键。示例代码如下:

@Data
@TableName("user")
publicclassUser{

@TableId(value="user_id",type=IdType.AUTO)
privateIntegeruserId;

privateStringname;

privateIntegerage;

privateStringemail;

//省略getter和setter
}

上面的代码中,@TableId注解标注在userId字段上,指定主键名为"user_id",并且指定自增主键策略,即IdType.AUTO。

二、@TableField注解的用途

除了主键字段,实体类还有其他的字段需要映射到数据库表中。@TableField注解的作用就是标注和数据库表字段的对应关系。示例代码如下:

@Data
@TableName("user")
publicclassUser{

@TableId(value="user_id",type=IdType.AUTO)
privateIntegeruserId;

@TableField("user_name")
privateStringname;

privateIntegerage;

privateStringemail;

//省略getter和setter
}

上面的代码中,@TableField注解标注在name字段上,指定实体类中的名字为"name",但是对应的数据库表中的字段名为"user_name"。

三、联合主键注解的用途

在实际的业务场景中,某些表的主键可能不只一个字段。这时,就需要用到MybatisPlus的联合主键注解。@TableId注解可以用在联合主键上,但是需要指定type属性为IdType.INPUT,然后在实体类中声明多个主键字段,用@TableField指定每个字段对应的数据库表中的字段名。示例代码如下:

@Data
@TableName("user")
publicclassUser{

@TableId(value="user_id",type=IdType.INPUT)
@TableField("user_id")
privateIntegeruserId;

@TableId(value="product_id",type=IdType.INPUT)
@TableField("product_id")
privateIntegerproductId;

privateStringname;

privateIntegerage;

privateStringemail;

//省略getter和setter
}

上面的代码中,@TableId注解标注在userId和productId字段上,指定主键名和数据库表字段名都为"user_id"和"product_id"。

四、多个联合主键注解的用途

有时候,联合主键并不是只有两个字段,可能有三个或者更多的字段。MybatisPlus同样支持这种情况,只需要在实体类中声明多个主键字段,并且在每个字段上面标注@TableId注解和@TableField注解。示例代码如下:

@Data
@TableName("order")
publicclassOrder{

@TableId(value="order_id",type=IdType.INPUT)
@TableField("order_id")
privateIntegerorderId;

@TableId(value="product_id",type=IdType.INPUT)
@TableField("product_id")
privateIntegerproductId;

@TableId(value="user_id",type=IdType.INPUT)
@TableField("user_id")
privateIntegeruserId;

privateDoubleprice;

privateIntegerquantity;

//省略getter和setter
}

上面的代码中,@TableId注解标注在orderId、productId和userId字段上,指定主键名和数据库表字段名都为"order_id"、"product_id"和"user_id"。

五、总结

MybatisPlus的联合主键注解可以很方便地处理多个字段组成的主键。@TableId注解用于标注主键字段,可以指定主键名和主键策略;@TableField注解用于标注普通字段,可以指定字段名和字段类型。在使用联合主键注解时,需要在每个主键字段上面都加上@TableId注解和@TableField注解,非常灵活。

原创文章,作者:SWBEQ,如若转载,请注明出处:https://www.506064.com/n/372209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
SWBEQ的头像SWBEQ
上一篇 2025-04-24 06:40
下一篇 2025-04-24 06:40

相关推荐

  • Hibernate注解联合主键 如何使用

    解答:Hibernate的注解方式可以用来定义联合主键,使用@Embeddable和@EmbeddedId注解。 一、@Embeddable和@EmbeddedId注解 在Hibe…

    编程 2025-04-29
  • Java持久层框架的复合主键实现

    用Java持久层框架来操作数据库时,复合主键是常见的需求。这篇文章将详细阐述javax.persistence复合主键的实现方式,并提供完整的示例代码。 一、复合主键的定义 复合主…

    编程 2025-04-27
  • 从多个方面详解RequestMapping注解

    一、RequestMapping注解的基本用法 RequestMapping注解用于将HTTP请求映射到方法上。下面是一个示例: @Controller public class …

    编程 2025-04-25
  • Mybatisplus面试题详解

    Mybatisplus是在Mybatis的基础上进行的封装,它为我们简化了开发操作,提供了自动生成常用SQL,自动分页,及其他一些常用操作的功能,大大提高了开发的效率。在本篇文章中…

    编程 2025-04-25
  • Mybatisplus官网详解

    一、简介 Mybatisplus是一个基于mybatis的增强工具,可快速、安全的开发mybatis相关项目。它提供了许多实用的功能,如分页、条件构造器、性能分析、代码生成等。 M…

    编程 2025-04-24
  • Swagger常用注解详解

    Swagger是一个广泛使用的API文档工具,它可以根据代码自动生成API文档,并提供交互式的API测试界面。在Swagger中,注解不仅仅只是用来生成文档,还能够控制API的行为…

    编程 2025-04-23
  • nullable注解的全面解析

    一、什么是nullable注解? 在开始讲解nullable注解之前,先来了解一下它所针对的数据类型:null able。该数据类型是指该变量可以为null值。而nullable注…

    编程 2025-04-23
  • 从多个方面详解apiimplicitparam注解用法

    在编写接口文档时,常常需要在接口的代码中描述参数的详细信息。但是这个过程相当繁琐,而且往往容易出错。在Swagger中,可以使用@apiimplicitparam注解来自动生成参数…

    编程 2025-04-23
  • Oracle修改主键

    一、为什么需要修改主键 主键是关系型数据库里的一项重要的概念,它具有唯一性和非空性,保证了数据库表中每一条记录的唯一性。 但是,在实际的应用环境中,我们难免会面对需要修改主键的情况…

    编程 2025-04-23
  • Java @Data注解的详细阐述

    Java @Data注解是一个非常实用的注解,它可以用在Java的类上,用来自动为类生成getter和setter方法、toString方法、hashCode方法、equals方法…

    编程 2025-04-23

发表回复

登录后才能评论