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

स्प्रिंग डेटा MongoDB द्वारा उत्पन्न रिपोजिटरी कार्यान्वयन को कैसे देखें?

tl;डॉ

नहीं, एक बहुत ही सरल कारण के लिए:कोई कोड जनरेशन नहीं चल रहा है। कार्यान्वयन परदे के पीछे और एक विधि इंटरसेप्टर पर आधारित है जो कॉल निष्पादन को सही स्थानों पर सौंपता है।

विवरण

प्रभावी रूप से, एक विधि निष्पादन को 3 प्रकार के कोड द्वारा समर्थित किया जा सकता है:

  1. CrudRepository . का स्टोर विशिष्ट कार्यान्वयन . Simple(Jpa|Mongo|Neo4|…)Repository नाम के प्रकारों पर एक नज़र डालें (जेपीए विशिष्ट एक देखें यहां ) CrudRepository . में सभी विधियों के लिए उनके पास "वास्तविक" कार्यान्वयन हैं और PagingAndSortingRepository

  2. क्वेरी विधियों को QueryExecutorMethodInterceptor.doInvoke(…) द्वारा प्रभावी ढंग से क्रियान्वित किया जाता है (देखें यहां ) यह मूल रूप से प्रतिनिधिमंडल के लक्ष्य को खोजने और उसे लागू करने के लिए एक 3-चरणीय प्रक्रिया है। वास्तविक निष्पादन (Jpa|Mongo|Neo4j…)QueryExecution नामक कक्षाओं में किया जाता है (उदाहरण के लिए इसे देखें)।

  3. कस्टम कार्यान्वयन कोड को सीधे QueryExecutorMethodInterceptor . से भी कहा जाता है ।

केवल एक चीज बची है वह है क्वेरी व्युत्पत्ति, जिसमें दो प्रमुख भाग होते हैं:विधि नाम पार्सिंग और क्वेरी निर्माण। पहले वाले के लिए, PartTree पर एक नज़र डालें . यह एक विधि का नाम और आधार प्रकार लेता है और आपको एक पार्स की गई एएसटी-जैसी संरचना लौटाएगा या अगर यह गुणों या इसी तरह को हल करने में विफल रहता है तो अपवाद फेंक देगा।

बाद वाले को PartTree(Jpa|Mongo|Neo4j|…)Query नाम की कक्षाओं में लागू किया गया है और वास्तव में स्टोर विशिष्ट क्वेरी बनाने के लिए अतिरिक्त घटकों को सौंपता है। उदा. जेपीए के लिए दिलचस्प बिट्स शायद JpaQueryCreator.PredicateBuilder.build() में हैं (देखें यहां )।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो में शार्किंग और प्रतिकृति के बीच अंतर क्या है?

  2. नोडज में डेटा सिंक्रनाइज़ेशन के लिए सर्वोत्तम अभ्यास

  3. नेवला ODM:NumberInt परिभाषित नहीं है

  4. वैध वस्तु आईडी के लिए मोंगोडब कास्ट इश्यू में त्रुटि आ रही है

  5. मैं एक डेटाबेस को एक MongoDB सर्वर से दूसरे में कैसे कॉपी करूं?