我正在練習使用 Gqlgen 和 Gorm(postgres 方言)開發用 Go 編寫的 Web 服務器。我首先描述我的用戶模型:# 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"`}在這種情況下,根據我的理解,最好對結構中的某些值使用指針,因為它們可以<nil>在沒有附加值時進行評估。然而,如果我不使用指針,如果沒有附加任何值,則 int 將為 0。好吧,這是有道理的……如果我沒記錯的話……然而,我現在面臨的困難是從數據庫上的 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} [email protected] <nil> 0xc0000a1cb0 0xc0000a1cd0 0xc0000a1cc0 <nil> 0xc0000a1cf0 0xc0000a1ce0}此代碼查詢電子郵件為“[email protected]”的用戶,顯然結構中的某些字段指向該值的實際地址。這是有道理的,但是如果我想讀取這些數據就很煩人了。有讀取這些數據的傳統方法嗎?我嘗試的是將這個結構轉換為 GQL 結構(由 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"`}但同樣,當我需要值時,我會得到地址,這是有道理的。但這似乎太過分了,如果我每次需要從數據庫讀取數據時都需要創建這樣的結構,那么需要付出很多努力。這是要走的路嗎?或者你知道更方便的方法嗎?
- 1 回答
- 0 關注
- 147 瀏覽
添加回答
舉報
0/150
提交
取消