Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Berjaya Mengimbas Struktur Bersarang Menggunakan SQLx?
Apabila cuba mengimbas hasil pertanyaan ke dalam struct bersarang dengan SQLx, pengguna mungkin menghadapi ralat seperti kehilangan nama destinasi. Isu ini timbul apabila nama medan struct dan nama lajur pangkalan data tidak betul-betul sepadan.
Seperti yang dicadangkan dalam dokumentasi SQLx, pendekatan yang betul adalah dengan membenamkan struct bersarang dalam struct induk. Contohnya:
type Customer struct { Id int `json:"id" db:"id"` Name string `json:"name" db:"name"` Address } type Address struct { Street string `json:"street" db:"street"` City string `json:"city" db:"city"` }
Dalam contoh ini, struct Alamat dibenamkan dalam struct Pelanggan. Dengan membenamkan struktur bersarang, nama medan dan teg yang dikaitkan dengan Alamat dinaikkan pangkat menjadi Pelanggan. Akibatnya, SQLx boleh memetakan hasil dengan betul ke medan yang sesuai.
Adalah penting untuk ambil perhatian bahawa membenamkan struct bersarang juga akan mengakibatkan perataan output semasa JSON marshalling. Untuk mengekalkan struktur bersarang asal, anda boleh memetakan semula struktur pangkalan data kepada jenis asal. Sebagai alternatif, anda boleh mengimbas hasil pertanyaan ke dalam peta[rentetan]antara muka{}, tetapi ini memerlukan pengendalian yang teliti bagi jenis data Postgres dalam Go.
Mengikut garis panduan ini memastikan pengimbasan yang betul bagi terhasil ke dalam struct bersarang menggunakan SQLx. Dengan membenamkan struktur bersarang dengan betul atau menggunakan pendekatan alternatif seperti memetakan semula atau mengimbas ke dalam peta, anda boleh mengekstrak struktur data kompleks dengan berkesan daripada pangkalan data anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berjaya Mengimbas Struktur Bersarang Menggunakan SQLx?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!