MyBatis-Plus非表字段的三種處理方法小結
MyBatis-Plus非表字段的處理方式
1、使用關鍵字
transient修飾字段,不讓這個字段參與序列化
//備註 private transient String remark;
2、關鍵字static
mybatis不會給static構建setter和getter,需要自己構建setter和getter方法,全類隻有一份,沒有每個對象都有。
//備註 private static String remark; public static void setRemark(String remark) { User.remark = remark; } public static String getRemark() { return remark; }
3、使用@TableField註解
把exist設置為false,可以保證每個對象都有。
@TableField(exist = false) private String remark;
mybatisplus 非數據庫字段設置
transient Dept dept;
使用transient修飾
我們都知道一個對象隻要實現瞭Serilizable接口,這個對象就可以被序列化,java的這種序列化模式為開發者提供瞭很多便利,我們可以不必關系具體序列化的過程,隻要這個類實現瞭Serilizable接口,這個類的所有屬性和方法都會自動序列化。
然而在實際開發過程中,我們常常會遇到這樣的問題,這個類的有些屬性需要序列化,而其他屬性不需要被序列化,打個比方,如果一個用戶有一些敏感信息(如密碼,銀行卡號等),為瞭安全起見,不希望在網絡操作(主要涉及到序列化操作,本地序列化緩存也適用)中被傳輸,這些信息對應的變量就可以加上transient關鍵字。換句話說,這個字段的生命周期僅存於調用者的內存中而不會寫到磁盤裡持久化。
@TableField(exist = false)
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- mybatis 忽略實體對象的某個屬性(2種方式)
- mybatis plus 關聯數據庫排除不必要字段方式
- Mybatis-plus使用註解 @TableField(exist = false)
- MybatisPlus 插入或更新數據時自動填充更新數據解決方案
- mybatisPlus 實體類與數據庫表映射關系詳解