溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Mybatis?Plus中@TableField怎么用

發(fā)布時間:2022-01-15 11:24:31 來源:億速云 閱讀:605 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Mybatis Plus中@TableField怎么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

@TableField的使用

1 研究背景和過程

妹紙開發(fā)突然發(fā)現(xiàn)@TableField失效了,在群里發(fā)問。一了解,發(fā)現(xiàn)妹紙本意是想用@TabkeField達到類似@JsonProperty的功能。也就是當實體類屬性名與數(shù)據(jù)庫列名不一致時,通過此注解實現(xiàn)別名效果。

奇怪的是,這注解一部分成功,一部分失效。具體表現(xiàn)就是有時候可以取到值,有時候又取不到。我點進改注解源碼,發(fā)現(xiàn)它給value設(shè)定的本意是:當駝峰轉(zhuǎn)化未開啟時,使用此注解實現(xiàn)駝峰轉(zhuǎn)化。然而,我實際測試表明它其實沒這功能。

我信誓旦旦跟妹紙講,@TableField沒有別名的功能。誰知妹紙給我發(fā)了一張自動打印sql的截圖。里面清清楚楚的顯示,MP確實自動生成了AS別名。靈光一閃,是否是Mybatis Plus自動生成的可以別名,而自己寫的sql就不行?

不驗不知道,一驗嚇一跳。果然如此,手寫的sql都不能自動生成別名,而自動生成的sql查詢語句都成功轉(zhuǎn)化了。至此,@TableField注解告一段落。

2 總結(jié)

2.1 別名效果 value屬性

使用MP自動生成的方法時,可以用@TableField起別名

在xml寫sql時,需要用as或者resultMap來轉(zhuǎn)化

2.2 防止字段持久化 exist屬性

使用exist屬性可以控制類中屬性在表中是都一定對應(yīng),如果有不存在于數(shù)據(jù)表的字段,建議都設(shè)成fasle

@TableField的作用

@TableField(exist = false)

注解加載bean屬性上,表示當前屬性不是數(shù)據(jù)庫的字段,但在項目中必須使用,這樣在使用bean的時候,mybatis-plus就會忽略這個,不會報錯

感謝各位的閱讀!關(guān)于“Mybatis Plus中@TableField怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI