java - Spring Data REST Override findBy* Method -
मैं वसंत-डेटा-आराम-वेबएमवीसी 2.0.0.RELEASE w / spring-data-jpa 1.5.0 का उपयोग कर रहा हूं। रिलीज।
मेरे पास रूम रिपोजिटरी, रूमरिपॉजिटरी कस्टम, और रूम रिपोजिटरी इम्पल क्लास है।
मैं एक findBy * विधि को ओवरराइड करने की कोशिश कर रहा हूं ताकि मैं @PostFilter के काम करने के लिए कस्टम लॉजिक प्रदान कर सकूं
मैं मूल रूप से इसे RoomRespository में था:
@PostFilter ("हैप्रमिशन (फिल्टर ऑब्जेक्ट, '" + + FIND + "')") @RestResource (rel = "byName", path = "byName") सार्वजनिक सूची & lt; कक्ष & gt; findByName (@Param ("name") स्ट्रिंग का नाम); यह अच्छी तरह से काम करता है, लेकिन @पोस्टफ़िल्टर पर सीमाओं के कारण मुझे एक सूची वापस करनी होगी और कोई पृष्ठ नहीं लौटा सकता।
मुझे पसंद है @PostFilter यह: <पूर्व> @RestResource (rel = "byName", path = "byName") सार्वजनिक पृष्ठ & lt; कक्ष & gt; findByName (@Param ("नाम") स्ट्रिंग का नाम, पेज योग्य पी); लेकिन मुझे अभी भी प्रमाणीकृत उपयोगकर्ता के प्रिंसिपल द्वारा अपने परिणामों को फ़िल्टर करने की आवश्यकता है I (जो मुझे अपनी कस्टम विधि में करने की उम्मीद थी)
इसलिए मैंने सोचा कि मैं RoomRespositoryImpl में एक कार्यान्वयन प्रदान करके FindByName को ओवरराइड कर सकता हूं, लेकिन यह ठीक से काम करने के लिए नहीं दिखाई देता है। यदि मैं FindByName को ओवरराइड करने का प्रयास करता हूं तो स्प्रिंग डेटा REST अब विधि को नहीं उठाता है और कमरे / खोज / द्वारानाम के लिए एक एंडपॉन्ज़ रजिस्टर नहीं करता है। नाम = "परीक्षण" । मैं भी खोजकर्ता के लिए कस्टम क्वेरी को परिभाषित करने के लिए @Query का उपयोग करने की कोशिश की यह काम करता है, लेकिन मेरा मानना नहीं है कि यह मेरे उद्देश्यों के लिए काम करेगा क्योंकि मुझे प्रमाणित उपयोगकर्ता के प्रिंसिपल का प्रयोग एक क्वेरी पैरामीटर के रूप में करना है। सारांश में: / कमरे / खोज को लागू करने के बारे में सबसे अच्छा कैसे जाना स्प्रिंग डेटा REST के साथ / नामनाम नाम = "परीक्षण" समापन बिंदु जो पैरामीटर वाले नामों के साथ एक पृष्ठ की जगह देता है, लेकिन यह भी एक अलग तालिका में मौजूदा प्रमाणीकृत उपयोगकर्ता की अनुमतियों को देखने के आधार पर अपने स्वयं के कस्टम तर्क द्वारा फ़िल्टर किया जाता है? < / P>
p> संक्षेप में: यह वर्तमान में (संस्करण 2.0 / 2.1) समर्थित नहीं है। सुरक्षा के मामले में पृष्ठ पर अंक लगाना बहुत जटिल है जब एक @PostFilter दृष्टिकोण वास्तव में इस तथ्य के कारण काम नहीं करता है कि आप अमान्य परिणाम बनाते हैं, यदि आप पृष्ठ के बाद आइटम को फ़िल्टर कर चुके हैं लोड किया गया है। इस समस्या का सही समाधान के लिए सुरक्षा बाध्यता को निष्पादित क्वेरी में शामिल किया जाना आवश्यक है। हमारे पास स्प्रिंग डाटा कॉमन्स में एक सामान्य अवसंरचना का ट्रैक रखने के लिए है, साथ ही साथ स्प्रिंग डेटा जेपीए में मुलायम हटाए जाने के समर्थन पर किसी भी तरह से जुड़े हुए हैं, जो आप उस विषय की प्रगति पर नज़र रख सकते हैं। < / div>
Comments
Post a Comment