SQLX Nested Struct Scanning
Apabila cuba mengimbas hasil pertanyaan ke dalam struct bersarang menggunakan SQLX, adalah penting untuk memahami pendekatan yang betul.
Dalam contoh yang diberikan, ralat tidak padan jenis berlaku kerana struct Alamat tidak betul tertanam dalam struct Pelanggan. Untuk menangani isu ini, pembenaman diperlukan.
Struktur terbenam membenarkan akses kepada medan terbenam tanpa perlu meletakkan awalannya dengan nama jenis terbenam. Ini memudahkan akses medan dan memastikan medan daripada struct terbenam diisi dengan betul semasa mengimbas hasil pertanyaan.
type Customer struct { Id int Name string Address // Embedded struct without tags } type Address struct { Street string `db:"street"` City string `db:"city"` }
Dengan membenamkan struct Alamat, SQLX akan menetapkan nilai secara automatik daripada hasil pertanyaan ke medan yang sesuai berdasarkan pangkalan data mereka tag.
customer := models.Customer{} err := db.Get(&customer, `select * from users where>
Perhatikan bahawa membenamkan struct Alamat akan meratakan output JSON, mengalih keluar objek alamat bersarang. Untuk mengekalkan struktur bersarang, pertimbangkan untuk menggunakan penukaran jenis untuk memetakan medan kembali kepada struktur asal.
Atas ialah kandungan terperinci Bagaimana untuk Mengimbas Struktur Bersarang dengan Betul ke dalam Go Structs Menggunakan SQLX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!