sqlx के साथ नेस्टेड स्ट्रक्चर में स्कैन करना
नेस्टेड स्ट्रक्चर sqlx का उपयोग करते समय चुनौतियां पेश करते हैं। हालाँकि, दस्तावेज़ एम्बेडेड संरचनाओं के उपयोग के माध्यम से एक समाधान प्रदान करता है। एम्बेडेड विशेषताओं और विधियों के लिए।
कोड उदाहरण
निम्नलिखित कोड पर विचार करें, जहां पता एक एम्बेडेड संरचना नहीं है:
ग्राहक संरचना टाइप करें { आईडी int `json:"id" db:"id"` नाम स्ट्रिंग `json:"name" db:"name"` पता पता `json:"पता"` } पता संरचना टाइप करें { स्ट्रीट स्ट्रिंग `json:"स्ट्रीट" db:"स्ट्रीट"` सिटी स्ट्रिंग `json:"city" db:"city"` }ग्राहक संरचना में स्कैन करने का प्रयास करते समय इस कोड के परिणामस्वरूप एक त्रुटि होगी क्योंकि पता फ़ील्ड एम्बेडेड नहीं है और इसका अपना डीबी टैग नहीं है।
इसे हल करने के लिए, पता एम्बेड करें ग्राहक में:
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"` }
पता एम्बेड करके, इसके फ़ील्ड (टैग सहित) को ग्राहक में प्रचारित किया जाता है, जिससे sqlx उन्हें क्वेरी परिणाम से पॉप्युलेट कर सकता है।
JSON आउटपुटtype Customer struct { Id int `json:"id" db:"id"` Name string `json:"name" db:"name"` Address }
एंबेडिंग पता JSON आउटपुट को समतल कर देगा, जैसा कि नीचे देखा गया है:
{ "आईडी": 1, "नाम": "फू", "सड़क": "बार", "शहर": "बाज़" }इसे संबोधित करने के लिए, आप डीबी संरचना को अपने मूल प्रकार में रीमैप कर सकते हैं या क्वेरी परिणाम को मानचित्र में स्कैन कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3