第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Go 中使用從 Gorm 查詢的指針來操作結(jié)構(gòu)體?

在 Go 中使用從 Gorm 查詢的指針來操作結(jié)構(gòu)體?

Go
慕姐4208626 2023-07-26 17:25:01
我正在練習(xí)使用 Gqlgen 和 Gorm(postgres 方言)開發(fā)用 Go 編寫的 Web 服務(wù)器。我首先描述我的用戶模型:# dbm.User{}type User struct {    BaseModel          Email       string  `gorm:"not null;unique_index:idx_email"`    UserID      *string // External user ID    Name        *string    NickName    *string    FirstName   *string    LastName    *string    Location    *string `gorm:"size:1048"`    Description *string `gorm:"size:1048"`}在這種情況下,根據(jù)我的理解,最好對結(jié)構(gòu)中的某些值使用指針,因為它們可以<nil>在沒有附加值時進(jìn)行評估。然而,如果我不使用指針,如果沒有附加任何值,則 int 將為 0。好吧,這是有道理的……如果我沒記錯的話……然而,我現(xiàn)在面臨的困難是從數(shù)據(jù)庫上的 Gorm 操作中獲取這個值時:dbRecord := &dbm.User{}db = db.Where(whereEmail, email).Find(&dbRecord)fmt.Println("dbRecord:", dbRecord)// Prints:// dbRecord: &{{def90b3c-93ff-40f0-8d33-6320dddbe3f2 2019-10-01 14:16:34.365395 +0200 CEST 2019-10-01 14:16:34.365395 +0200 CEST} test@test.com <nil> 0xc0000a1cb0 0xc0000a1cd0 0xc0000a1cc0 <nil> 0xc0000a1cf0 0xc0000a1ce0}此代碼查詢電子郵件為“email@email.com”的用戶,顯然結(jié)構(gòu)中的某些字段指向該值的實際地址。這是有道理的,但是如果我想讀取這些數(shù)據(jù)就很煩人了。有讀取這些數(shù)據(jù)的傳統(tǒng)方法嗎?我嘗試的是將這個結(jié)構(gòu)轉(zhuǎn)換為 GQL 結(jié)構(gòu)(由 GQLgen 自動生成):# gqlm.User{}type User struct {    ID          string     `json:"id"`    Email       string     `json:"email"`    UserID      *string    `json:"userId"`    Name        *string    `json:"name"`    FirstName   *string    `json:"firstName"`    LastName    *string    `json:"lastName"`    NickName    *string    `json:"nickName"`    Description *string    `json:"description"`    Location    *string    `json:"location"`    CreatedAt   time.Time  `json:"createdAt"`    UpdatedAt   *time.Time `json:"updatedAt"`}但同樣,當(dāng)我需要值時,我會得到地址,這是有道理的。但這似乎太過分了,如果我每次需要從數(shù)據(jù)庫讀取數(shù)據(jù)時都需要創(chuàng)建這樣的結(jié)構(gòu),那么需要付出很多努力。這是要走的路嗎?或者你知道更方便的方法嗎?
查看完整描述

1 回答

?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗 獲得超9個贊

您需要使用 sql.NullString 作為字符串指針類型。

具體來說,使用 sql null 類型,其中存在“此字段沒有有效值”的概念是有意義的。


查看完整回答
反對 回復(fù) 2023-07-26
  • 1 回答
  • 0 關(guān)注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號