अस्वीकरण:मैं स्प्रिंग डेटा प्रोजेक्ट का प्रमुख हूं, इसलिए मैं ज्यादातर चीजों के स्प्रिंग डेटा पक्ष को यहां कवर करूंगा:
मुझे लगता है कि दो परियोजनाओं के बीच मुख्य अंतर यह है कि हाइबरनेट ओजीएम टीम ने जेपीए के आसपास अपने प्रयासों को केंद्रित करना चुना जबकि स्प्रिंग डेटा टीम ने स्पष्ट रूप से नहीं किया। कारण इस प्रकार हैं:
- जेपीए एक अंतर्निहित संबंधपरक एपीआई है। कल्पना राज्य के पहले दो वाक्य, कि यह वस्तु-संबंधपरक मानचित्रण के लिए एक एपीआई है। यह एपीआई के मुख्य विषयों में भी सन्निहित है:यह टेबल, कॉलम, जॉइन, लेनदेन के बारे में बात करता है। ऐसी अवधारणाएं जो आवश्यक रूप से NoSQL दुनिया में हस्तांतरणीय नहीं हैं।
- आप आमतौर पर इसके विशेष लक्षणों के कारण एक NoSQL स्टोर चुनते हैं (उदाहरण के लिए MongoDB पर भू-स्थानिक प्रश्न, Neo4j के लिए ग्राफ़ ट्रैवर्सल निष्पादित करने में सक्षम होना)। उनमें से कोई भी जेपीए में उपलब्ध नहीं है (और रहेगा), इसलिए आपको वैसे भी मालिकाना एक्सटेंशन प्रदान करने की आवश्यकता होगी।
- इससे भी बदतर, जेपीए में ऐसी अवधारणाएं हैं जो उपयोगकर्ताओं को गलत दिशाओं में मार्गदर्शन करती हैं यदि वे मानते हैं कि वे नोएसक्यूएल स्टोर पर काम करते हैं जैसे कि उन्हें जेपीए में परिभाषित किया गया था:एक मोंगोडीबी के शीर्ष पर लेनदेन रोलबैक को उचित रूप से कैसे कार्यान्वित किया जाना चाहिए?ली>
इसलिए स्प्रिंग डेटा के साथ हमने एक सुसंगत प्रोग्रामिंग मॉडल . प्रदान करना चुना समर्थित स्टोर के लिए, लेकिन सब कुछ को एक ओवर-एब्सट्रैक्टिंग एपीआई में मजबूर करने की कोशिश न करें:आपको प्रसिद्ध टेम्पलेट कार्यान्वयन मिलते हैं, आपको रिपोजिटरी एब्स्ट्रैक्शन मिलता है, जो सभी स्टोरों के लिए समान काम करता है लेकिन आपको स्टोर विशिष्ट सुविधाओं और अवधारणाओं का लाभ उठाने देता है।पी>