首頁 >後端開發 >Golang >如何使用 SQLX 正確地將巢狀結構掃描到 Go 結構中?

如何使用 SQLX 正確地將巢狀結構掃描到 Go 結構中?

Barbara Streisand
Barbara Streisand原創
2024-11-25 12:13:12822瀏覽

How to Correctly Scan Nested Structs into Go Structs Using SQLX?

SQLX 巢狀結構掃描

嘗試使用 SQLX 將查詢結果掃描到巢狀結構時,了解正確的方法至關重要。

在提供的範例中,由於 Address 結構未正確嵌入到客戶結構。為了解決這個問題,需要嵌入。

嵌入結構

嵌入結構允許存取嵌入字段,而不需要使用嵌入類型的名稱作為前綴。這簡化了字段訪問,並確保在掃描查詢結果時正確填充嵌入結構中的字段。

type Customer struct {
    Id        int
    Name      string
    Address   // Embedded struct without tags
}

type Address struct {
    Street string  `db:"street"`
    City   string  `db:"city"`
}

更新的查詢

透過嵌入 Address 結構,SQLX 會自動從根據資料庫標籤查詢結果到適當的欄位。

customer := models.Customer{}
err := db.Get(&customer, `select * from users where>

JSON編組

請注意,嵌入 Address 結構會展平 JSON 輸出,刪除巢狀的位址物件。若要維護巢狀結構,請考慮使用類型轉換將欄位對應回原始結構。

以上是如何使用 SQLX 正確地將巢狀結構掃描到 Go 結構中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn