المسح إلى الهياكل المتداخلة باستخدام sqlx
تمثل الهياكل المتداخلة تحديات عند استخدام sqlx. ومع ذلك، توفر الوثائق حلاً من خلال استخدام الهياكل المضمنة.
الهياكل المضمنة
يدعم Sqlx الهياكل المضمنة، مما يسمح لك بتعيين قيم للحقول باستخدام قواعد أسبقية Go للسمات والأساليب المضمنة.
مثال التعليمات البرمجية
ضع في اعتبارك الكود التالي، حيث العنوان ليس بنية مضمنة:
type Customer struct { Id int `json:"id" db:"id"` Name string `json:"name" db:"name"` Address Address `json:"adress"` } type Address struct { Street string `json:"street" db:"street"` City string `json:"city" db:"city"` }
سيؤدي هذا الرمز إلى حدوث خطأ عند محاولة المسح الضوئي في بنية العميل لأن حقل العنوان غير مضمن ولا يحتوي على علامة قاعدة بيانات خاصة به.
لحل هذه المشكلة، قم بتضمين العنوان إلى العميل:
type Customer struct { Id int `json:"id" db:"id"` Name string `json:"name" db:"name"` Address }
من خلال تضمين العنوان، تتم ترقية حقوله (بما في ذلك العلامات) إلى عميل، مما يسمح لـ sqlx بملءها من نتيجة الاستعلام.
إخراج JSON
سيعمل عنوان التضمين على تسوية مخرجات JSON، كما هو موضح أدناه:
{ "id": 1, "name": "foo", "street": "bar", "city": "baz" }
لمعالجة هذه المشكلة، يمكنك إعادة تعيين بنية قاعدة البيانات إلى النوع الأصلي أو مسح نتيجة الاستعلام ضوئيًا في الخريطة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3