hibernate - deserializing entities with relationships -


हमें JSON मिलता है जो ऐसा दिखता है:

  {name: "john", surname: "स्मिथ", कंपनी: "1234342"}   

हमारा ग्राहक साइड फ्रेमवर्क ऑब्जेक्ट और कंपनी के बीच संबंधों को भी संभाल कर सकता है, इसकी पहचान आईडी को मैप किया जाता है।

हमारे पास हाइबरनेट है ग्राहक इकाई, जिसमें कंपनी का कोई सदस्य है, जो किसी अन्य कंपनी इकाई से संबंध है।

हम स्प्रिंग के @RequestMapping विधि (@RequestBody ग्राहक सी) का अनुरोध करते हैं, लेकिन हम प्रदान किए गए जेएसओएन को डिसेरीलाइज़ करने में विफल रहे हैं। सीतनिद्रा में होना कोई स्ट्रिंग से कंपनी बनाने का नहीं जानता है, इस तथ्य की परवाह किए बिना कि स्ट्रिंग इसकी प्राथमिक कुंजी है।

हाइबरनेट से संस्थाओं को जेसनॉन में क्रमबद्ध करना बहुत आसान है, लेकिन deserialization एक अलग कहानी है ।

क्या हम इसे प्राप्त करने के लिए कोई भी पैटर्न / निर्माण कर रहे हैं? क्या कोई मुझे सही दिशा में इंगित कर सकता है?

सबसे सरल समाधान के लिए दो अलग-अलग वर्ग मॉडल हैं, एक सीतनिद्रा में होना और एक JSON के लिए, और आवश्यक के रूप में उन दोनों के बीच में परिवर्तित करें।

यह बहुत खूबसूरत नहीं है, हालांकि, जैक्सन (जो कि स्प्रिंग द्वारा उपयोग किया जाने वाला जेएसओएन कार्यान्वयन है) एक विस्तार तंत्र (जिसे कहा जाता है) प्रदान करता है, बदले में आपको अनुमति देता है (यानी जावा ऑब्जेक्ट में जेसनॉन टोकन कैसे चालू करें) उस पर एक नज़र डालें, देखें कि यह आपके लिए काम करता है।

आप फिर से कस्टम मैपर का उपयोग करना होगा।

Comments