2016-02-11 12 views
9

मेरे पास वसंत डेटा mongodb भंडारों के लिए एक अजीब मुद्दा है .. मैं अपने findAll अनुरोध से एक फ़ील्ड को बाहर करना चाहता हूं। इसे कैसे प्राप्त किया जा सकता है ?वसंत डेटा mongodb भंडार खोज सभी फ़ील्ड बहिष्करण

यह पूरी तरह से काम करता है:

@Query(fields = "{'objectContentAsJson':0}") 
Page<ObjectHistory> findByObjectIdAndServiceIgnoreCase(String objectId, String service, Pageable pageable); 

लेकिन findAll के लिए कोई मौका नहीं:

@Query(fields = "{'objectContentAsJson':0}") 
Page<ObjectHistory> findAll(Pageable pageable); 

यह फेंकता है:

की वजह से: org.springframework.data.mapping.PropertyReferenceException : नहीं संपत्ति खोज सभी प्रकार Obje के लिए मिला ctHistory! org.springframework.data.mapping.PropertyPath पर। (PropertyPath.java:75) org.springframework.data.mapping.PropertyPath.create (PropertyPath.java:327) पर org.springframework.data.mapping पर .PropertyPath.create (PropertyPath.java:307) org.springframework.data.mapping.PropertyPath.from (PropertyPath.java:270) पर org.springframework.data.mapping.PropertyPath.from पर (PropertyPath.java : 241) पर org.springframework.data.repository.query.parser.Part (Part.java:76)

उत्तर

3

जोड़ा जा रहा है। एक खाली फ़िल्टर मापदंड आप के लिए चाल करना होगा: जाहिर है

@Query(value = "{}", fields = "{'objectContentAsJson':0}") 
Page<ObjectHistory> findAll(Pageable pageable); 

, जब आप परिणामों को फ़िल्टर करने value पैरामीटर निर्दिष्ट नहीं करते, स्प्रिंग डाटा विधि नाम से एक प्रश्न प्राप्त करने के लिए कोशिश करता है और किसी भी तरह, को नहीं पहचानता है का विशेष अर्थ।

+0

लेकिन मैं इसे पाने के न, यह मेरा ही अन्य समारोह में –

+0

धन्यवाद मदद के लिए वैसे भी काम करता है! –

+0

दूसरे मामले में, क्वेरी विधि नाम से व्युत्पन्न है। –

2

चूंकि आप अपने @query एनोटेशन के लिए एक मूल्य क्षेत्र प्रदान नहीं कर रहे, स्प्रिंग विधि नाम findAll एक प्रश्न जो वसंत का क्वेरी निर्माण विशिष्टता का सम्मान नहीं कर रहा है कन्वर्ट करने के लिए कोशिश करेंगे। कृपया चश्मा here देखें।

यह आप के लिए काम करना चाहिए:

@Query(value = "{}", fields = "{'objectContentAsJson':0}") 
Page<ObjectHistory> findAll(Pageable pageable); 
+0

यह एक वैध विचार है लेकिन यह 'मोंगोडीबी' नहीं है 'जेपीए', इसलिए आप 'जेपीक्यूएल' का उपयोग नहीं कर सकते हैं। –

+0

वास्तव में आप कर सकते हैं, वसंत अंतर्निहित डेटा स्टोर में परिवर्तित हो जाएगा। स्प्रिंग डेटा मोंगो आधिकारिक दस्तावेज़ीकरण से कृपया [इस उदाहरण] (http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repositories.query-streaming) देखें। – omahjoub

+0

इस दस्तावेज़ का पहला हिस्सा सामान्य होना था लेकिन प्रदर्शन के लिए 'जेपीए' विशिष्ट उदाहरणों का इस्तेमाल किया गया था। Http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#reference के बाद सबकुछ mongo –

संबंधित मुद्दे