SQLX ネストされた構造体のスキャン
SQLX を使用してクエリ結果をネストされた構造体にスキャンしようとする場合、正しいアプローチを理解することが重要です。
この例では、Address 構造体が正しく埋め込まれていないため、型不一致エラーが発生します。 Customer 構造体内。この問題に対処するには、埋め込みが必要です。
埋め込み構造体を使用すると、埋め込み型の名前をプレフィックスとして付ける必要なく、埋め込みフィールドにアクセスできます。これにより、フィールド アクセスが簡素化され、クエリ結果をスキャンするときに、埋め込まれた構造体のフィールドが正しく設定されるようになります。
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>
Address 構造体を埋め込むと、JSON 出力がフラット化され、ネストされたアドレス オブジェクトが削除されることに注意してください。ネストされた構造を維持するには、型変換を使用してフィールドを元の構造体にマップし直すことを検討してください。
以上がSQLX を使用してネストされた構造体を Go 構造体に正しくスキャンする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。