Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Berjaya Mengimbas Struktur Bersarang Menggunakan SQLx?

Bagaimanakah Saya Boleh Berjaya Mengimbas Struktur Bersarang Menggunakan SQLx?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-22 12:11:14916semak imbas

How Can I Successfully Scan Nested Structs Using SQLx?

Pengimbasan Struktur Bersarang dengan 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.

Penyelesaian: Membenamkan Struktur Bersarang

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.

Elakkan Penduaan Medan

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.

Kesimpulan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn