使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑記錄
@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑
@TableField(updateStrategy = FieldStrategy.IGNORED) private String phoneNo;
因?yàn)槁?lián)系人手機(jī)號碼可以修改為空值,所以加@TableField(updateStrategy = FieldStrategy.IGNORED)注解,可以讓phoneNo為空的時候用MP更新數(shù)據(jù)庫是不會忽略此字段。
后來我在修改該對象其他屬性時,沒有設(shè)置phoneNo的值,更新時發(fā)現(xiàn)phoneNo就被更新為空。所以為了避免此情況我不得重新查詢該字段值再賦值一遍。
切記用此注解需謹(jǐn)慎?。?!
注解 @TableField 的使用筆記
@TableField 是一個注解,用于標(biāo)識實(shí)體類中的字段映射關(guān)系。它是 MyBatis-Plus 框架提供的注解之一,用于與數(shù)據(jù)庫表字段進(jìn)行映射。
在使用 MyBatis-Plus 進(jìn)行數(shù)據(jù)庫操作時,我們可以通過 @TableField 注解來指定實(shí)體類中的字段與數(shù)據(jù)庫表中的字段之間的映射關(guān)系。該注解可以用于類的成員變量上,也可以用于類的方法上。
常見的@TableField注解參數(shù)包括
- value:指定實(shí)體類字段與數(shù)據(jù)庫表字段的映射關(guān)系,如果實(shí)體類字段名與數(shù)據(jù)庫表字段名一致,可以省略該參數(shù)。
- exist:指定該字段是否為數(shù)據(jù)庫表字段,默認(rèn)為 true,表示是數(shù)據(jù)庫表字段;設(shè)置為 false 則表示不是數(shù)據(jù)庫表字段。
- fill:指定該字段是否為自動填充字段,用于在插入和更新操作時自動填充字段的值。
public class User {
@TableField("user_name")
private String userName;
@TableField(value = "age", exist = false)
private Integer age;
// getter and setter
}上述代碼中,userName 字段與數(shù)據(jù)庫表字段 user_name 進(jìn)行映射,而 age 字段并不是數(shù)據(jù)庫表字段。
另外:
@TableName注解,value值指定對應(yīng)的表名。
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_user")
public class User {
private Long id;
private String name;
}@TableId注解:MyBatisPlus在實(shí)現(xiàn)CRUD默認(rèn)會將Id作為主鍵,在插入數(shù)據(jù)時,使用雪花算法生成Id,如果主鍵不叫Id則添加功能會失敗。
所以@TableId有下列用法:
@TableId(value = “uid”) //value指定當(dāng)前作為主鍵的字段 @TableId(value = “id”,type = IdType.AUTO) //將當(dāng)前屬性所對應(yīng)的字段作為主鍵
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_user")
public class User {
@TableId
private Long id;
private String name;
}總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Java高并發(fā)解決方案以及高負(fù)載優(yōu)化方法
這篇文章主要介紹了淺談Java高并發(fā)解決方案以及高負(fù)載優(yōu)化方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java實(shí)現(xiàn)經(jīng)典游戲之大魚吃小魚
這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實(shí)現(xiàn)經(jīng)典游戲之大魚吃小魚,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Java游戲開發(fā)有一定幫助,需要的可以參考一下2022-08-08
CompletableFuture創(chuàng)建及功能使用全面詳解
這篇文章主要為大家介紹了CompletableFuture創(chuàng)建及功能使用全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
詳解springboot如何更新json串里面的內(nèi)容
這篇文章主要為大家介紹了springboot 如何更新json串里面的內(nèi)容,文中有詳細(xì)的解決方案供大家參考,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-10-10
關(guān)于Springboot打成JAR包后讀取外部配置文件的問題
這篇文章主要介紹了關(guān)于Springboot打成JAR包后讀取外部配置文件的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
Java日期接收報錯:could?not?be?parsed,?unparsed?text?found?a
在做Java開發(fā)時肯定會碰到傳遞時間參數(shù)的情況,這篇文章主要給大家介紹了關(guān)于Java日期接收報錯:could?not?be?parsed,?unparsed?text?found?at?index?10的解決辦法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01

