MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

जैक्सन का उपयोग करके जावा मोंगो डीबीओब्जेक्ट से/से कुशल पीओजेओ मैपिंग

आप शायद अपने POJO और BasicDBObject को एनोटेट करने के लिए मिक्सिन एनोटेशन का उपयोग कर सकते हैं (या DBObject ), इसलिए एनोटेशन कोई समस्या नहीं है। चूंकि BasicDBOject एक नक्शा है, आप उपयोग कर सकते हैं @JsonAnySetter पुट विधि पर।

m_objectMapper.addMixInAnnotations(YourMixIn.class, BasicDBObject.class);

public interface YourMixIn.class {
    @JsonAnySetter
    void put(String key, Object value);
}

मोंगोडीबी ऑब्जेक्ट के साथ मेरे पास शून्य अनुभव होने के बाद से मैं बस इतना ही आ सकता हूं।

अपडेट करें: मिक्सइन मूल रूप से उक्त वर्ग को संशोधित किए बिना कक्षा में एनोटेशन जोड़ने के लिए जैक्सन तंत्र हैं। जब आप जिस वर्ग को मार्शल करना चाहते हैं उस पर आपका नियंत्रण नहीं होने पर यह एकदम सही फिट है (जैसे कि जब यह किसी बाहरी जार से हो) या जब आप एनोटेशन के साथ अपनी कक्षाओं को अव्यवस्थित नहीं करना चाहते।

यहां आपके मामले में, आपने कहा था कि BasicDBObject Map को लागू करता है इंटरफ़ेस, ताकि कक्षा में विधि हो put , जैसा कि मानचित्र इंटरफ़ेस द्वारा परिभाषित किया गया है। @JsonAnySetter<जोड़कर /ए> उस विधि के लिए, आप जैक्सन को बताते हैं कि जब भी उसे कोई ऐसी संपत्ति मिलती है जिसे वह नहीं जानता है, तो वह वस्तु में संपत्ति डालने के लिए विधि का उपयोग करने के लिए कक्षा के आत्मनिरीक्षण के बाद नहीं जानता है। कुंजी संपत्ति का नाम है और मूल्य, संपत्ति का मूल्य है।

यह सब संयुक्त मध्यवर्ती मानचित्र को दूर कर देता है, क्योंकि जैक्सन सीधे BasicDBOject में परिवर्तित हो जाएगा क्योंकि अब यह जानता है कि उस वर्ग को जेसन से कैसे deserialize करना है। उस कॉन्फ़िगरेशन के साथ, आप यह कर सकते हैं:

DBObject dbo = m_objectMapper.convertValue(pojo, BasicDBObject.class);

ध्यान दें कि मैंने इसका परीक्षण नहीं किया है क्योंकि मैं मोंगोडीबी के साथ काम नहीं करता, इसलिए कुछ ढीले सिरे हो सकते हैं। हालांकि, मैंने बिना किसी समस्या के समान उपयोग के मामलों के लिए समान तंत्र का उपयोग किया है। वाईएमएमवी कक्षाओं पर निर्भर करता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB एक उप-दस्तावेज़ दस्तावेज़ को एक उप-दस्तावेज़ से हटा दें

  2. Node.js Mongo's GridFS से चित्र प्रदर्शित करता है

  3. MERN स्टैक वेब एप्लिकेशन में छवियों को संग्रहीत करने का सबसे अच्छा तरीका

  4. MongoDB ट्यूटोरियल:Scala . में MongoDB से कनेक्ट करना

  5. MongoDB क्वेरी परिणाम आदेश (संख्यात्मक श्रेणी क्वेरी)