tl;डॉ
इसे भंडार और नियंत्रक के लिए कस्टम कार्यान्वयन की आवश्यकता होगी।
विवरण
हमें यह सुनिश्चित करना होगा कि हम उन सभी विभिन्न पहलुओं में खो नहीं रहे हैं जिनका आप यहां उल्लेख कर रहे हैं। मैं नीचे से ऊपर तक की शाखाओं को खोलने की कोशिश करूंगा:
MongoDB स्क्रिप्ट निष्पादित करना
के रूप में MongoDB के साथ स्क्रिप्ट निष्पादित करने पर संदर्भ दस्तावेज़ीकरण
राज्य (और आप पहले ही खोज चुके हैं), कार्यक्षमता by MongoTemplate
. प्रदान की जाती है का ScriptOperations
. इस प्रकार उस एपीआई का उपयोग कैसे करें स्पष्ट होना चाहिए। अधिक जानकारी के लिए जावाडोक से परामर्श लें।
स्प्रिंग डेटा रिपॉजिटरी के माध्यम से स्क्रिप्ट निष्पादित करना
अगली चीज़ जो आप मांग रहे हैं वह उन स्क्रिप्ट को रिपोजिटरी एब्स्ट्रैक्शन के माध्यम से निष्पादित कर रही है। यहां नहाने के पानी के साथ बच्चे को बाहर न फेंकने के लिए, सुनिश्चित करें कि हम भंडार के उद्देश्य को समझते हैं:यह समग्र जड़ों के संग्रह का अनुकरण करता है और उस तक पहुंच अंतर्निहित दृढ़ता तंत्र को उजागर किए बिना . एक्सपोजिंग प्रकार जैसे ExecutableMongoScript
भंडार पर बाद की विशेषता को तोड़ देगा। इस प्रकार यहां सही तरीका उस विशेष कार्यक्षमता के लिए एक कस्टम कार्यान्वयन तैयार करना है जैसा कि स्प्रिंग डेटा रिपॉजिटरी पर संदर्भ दस्तावेज़
।
REST के माध्यम से कार्यक्षमता को उजागर करना
मुझे लगता है कि आप अपने प्रश्न में रिपोजिटरी क्वेरी विधि के लिए समर्पित संसाधन का पर्दाफाश करने के लिए स्प्रिंग डेटा आरईएसटी की सुविधा का जिक्र कर रहे हैं। स्प्रिंग डेटा आरईएसटी वर्तमान में केवल घोषणात्मक क्वेरी विधियों को स्वचालित रूप से उजागर करता है, ज्यादातर इस कारण से कि कस्टम कार्यान्वयन के समर्थन के लिए सही HTTP विधि के बारे में तर्क करना मुश्किल है क्योंकि हम अनुमान नहीं लगा सकते कि विधि के अंदर क्या हो रहा है।
@RequestMapping
. के साथ कस्टम नियंत्रक का उपयोग करके कस्टम रिपॉजिटरी क्वेरी विधियों को उजागर करने का अनुशंसित तरीका अपने उद्देश्य के अनुरूप, रिपॉजिटरी को कॉल करना और PersistentEntityResourceAssembler
का उपयोग करना PersistentEntityResource
produce बनाने के लिए हैंडलर विधि में इंजेक्ट करने योग्य लौटने के लिए।