java中常用注解@TableId的詳細(xì)解析
@TableId 是 MyBatis-Plus 提供的一個(gè)注解,用于標(biāo)識(shí)實(shí)體類中的主鍵字段。它可以幫助 MyBatis-Plus
在執(zhí)行數(shù)據(jù)庫(kù)操作時(shí)正確地識(shí)別和處理主鍵字段。
下面是對(duì) @TableId 注解的詳細(xì)解析:
@TableId 注解詳解
1. 基本用途
標(biāo)識(shí)主鍵:@TableId 注解用于標(biāo)記實(shí)體類中的某個(gè)字段為主鍵字段。 自動(dòng)生成策略:可以指定主鍵的生成策略,如自增、UUID 等。
2. 屬性
value:主鍵字段的名稱,默認(rèn)值為字段名。 type:主鍵生成策略,常用的有以下幾種:
IdType.AUTO:自動(dòng)增長(zhǎng)(適用于自增主鍵)。 IdType.NONE:不指定主鍵生成策略,需要手動(dòng)賦值。
IdType.ASSIGN_ID:使用雪花算法生成唯一 ID(Long 類型)。 IdType.ASSIGN_UUID:使用 UUID
生成唯一 ID(String 類型)。 IdType.INPUT:手動(dòng)輸入主鍵值。
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; // 其他字段和方法 }
在這個(gè)示例中,jobLogId 字段被標(biāo)記為主鍵,但沒有指定生成策略,因此默認(rèn)為 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; // 其他字段和方法 }
在這個(gè)示例中,jobLogId 字段被標(biāo)記為主鍵,并且指定了生成策略為 IdType.ASSIGN_UUID,即使用 UUID 生成唯一
ID。
使用場(chǎng)景
1.自增主鍵:
@TableId(type = IdType.AUTO) private Long id;
2.UUID 主鍵:
@TableId(type = IdType.ASSIGN_UUID) private String id;
3.手動(dòng)賦值主鍵:
@TableId(type = IdType.INPUT) private String customId;
注意事項(xiàng)
字段類型:
IdType.ASSIGN_ID 適用于 Long 類型的主鍵。 IdType.ASSIGN_UUID 適用于 String 類型的主鍵。
數(shù)據(jù)庫(kù)兼容性:
不同的數(shù)據(jù)庫(kù)對(duì)主鍵生成策略的支持可能有所不同,例如 MySQL 支持自增主鍵,而 Oracle 需要使用序列。
唯一性:
確保生成的主鍵值在數(shù)據(jù)庫(kù)中是唯一的,以避免主鍵沖突。 通過使用 @TableId
注解,你可以靈活地管理和配置實(shí)體類中的主鍵字段,從而更好地與數(shù)據(jù)庫(kù)進(jìn)行交互。
總結(jié)
到此這篇關(guān)于java中常用注解@TableId詳細(xì)解析的文章就介紹到這了,更多相關(guān)java注解@TableId內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)戰(zhàn)之飛機(jī)大戰(zhàn)小游戲(源碼加注釋)
這篇文章主要介紹了java實(shí)戰(zhàn)之飛機(jī)大戰(zhàn)小游戲(源碼加注釋),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04解讀Java中打印輸出對(duì)象內(nèi)容為什么可以不寫.toString()
這篇文章主要介紹了解讀Java中打印輸出對(duì)象內(nèi)容為什么可以不寫.toString()問題,具有很的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09解決MyBatis報(bào)錯(cuò):There is no getter for
這篇文章主要介紹了解決MyBatis報(bào)錯(cuò):There is no getter for property named'Xxx'in'class xxx.xxx.Xxx'問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08深入理解Java class文件格式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
對(duì)于理解JVM和深入理解Java語言, 學(xué)習(xí)并了解class文件的格式都是必須要掌握的功課2017-06-06SpringMVC對(duì)日期類型的轉(zhuǎn)換示例
本篇文章主要介紹了SpringMVC對(duì)日期類型的轉(zhuǎn)換示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02Java結(jié)合Spark的數(shù)據(jù)清洗場(chǎng)景及對(duì)應(yīng)的實(shí)現(xiàn)方法
在大數(shù)據(jù)處理中,數(shù)據(jù)清洗是非常重要的一步,數(shù)據(jù)清洗可以幫助我們?nèi)コK數(shù)據(jù)、處理缺失值、規(guī)范數(shù)據(jù)格式等,以確保數(shù)據(jù)質(zhì)量和準(zhǔn)確性,在本文中,我們將介紹如何使用Java結(jié)合Spark框架來實(shí)現(xiàn)數(shù)據(jù)清洗,需要的朋友可以參考下2025-05-05java并發(fā)編程中的SynchronousQueue實(shí)現(xiàn)原理解析
這篇文章主要介紹了java并發(fā)編程中的SynchronousQueue實(shí)現(xiàn)原理解析,SynchronousQueue是一個(gè)比較特別的隊(duì)列,此隊(duì)列源碼中充斥著大量的CAS語句,理解起來是有些難度的,為了方便日后回顧,本篇文章會(huì)以簡(jiǎn)潔的圖形化方式展示該隊(duì)列底層的實(shí)現(xiàn)原理,需要的朋友可以參考下2023-12-12