वहाँ कोई अंतर जब स्प्रिंग डाटा जेपीए कीवर्ड का उपयोग कर है के बीच:findBy/findAllBy के बीच वसंत डाटा जेपीए अंतर
List<SomeEntity> findBySomeCondition();
और
List<SomeEntity> findAllBySomeCondition();
वहाँ कोई अंतर जब स्प्रिंग डाटा जेपीए कीवर्ड का उपयोग कर है के बीच:findBy/findAllBy के बीच वसंत डाटा जेपीए अंतर
List<SomeEntity> findBySomeCondition();
और
List<SomeEntity> findAllBySomeCondition();
नहीं है, उन दोनों के बीच कोई अंतर नहीं है, वे ठीक उसी क्वेरी को निष्पादित करेंगे, All
हिस्सा स्प्रिंग डाटा द्वारा नजरअंदाज कर दिया जाता है जब पाने विधि नाम से क्वेरी। एकमात्र महत्वपूर्ण बिट By
कीवर्ड है, इसके बाद कुछ भी फ़ील्ड नाम के रूप में माना जाता है (OrderBy
जैसे अन्य कीवर्ड के अपवाद के साथ जो गोपनीय रूप से findAllByOrderByIdAsc
जैसे कुछ अजीब दिखने वाले विधि नामों का कारण बन सकता है)।
इसका मतलब यह है कुछ इस तरह पूरी तरह से वैध है:
List<SomeEntity> findAnythingYouWantToPutHereBySomeCondition();
और के रूप में बिल्कुल वैसा ही SQL क्वेरी निष्पादित करेंगे:
List<SomeEntity> findBySomeCondition();
या
List<SomeEntity> findAllBySomeCondition();
अद्यतन: मैं इस व्यवहार के किसी भी आधिकारिक विवरण को कभी नहीं देखा दस्तावेज में लेकिन वसंत डेटा (Kay) के आगामी 2.0 रिहाई के बारे में recent blog post में iour यह समझाया गया था:
स्प्रिंग डाटा की विधि पार्स
find
तरह उपसर्ग कीवर्ड का उपयोग करने,exists
,count
, औरdelete
और एक को समाप्तBy
कीवर्ड ।find
औरBy
के बीच जो कुछ भी आपने डाला है, वह आपके विधि का नाम अधिक अभिव्यक्तिपूर्ण बनाता है और क्वेरी व्युत्पन्न को प्रभावित नहीं करता है।
findBy विधि का इस्तेमाल किया जाता है, तो हम नाम से पता लगाना चाहते हैं या कुछ अन्य मानदंड जैसे findByFirstName(String firstName);
ढूंढें सभी विधियां आमतौर पर विनिर्देश प्रदान करके पाती हैं
List<T> findAll(Specification<T> spec);
कृपया नीचे दस्तावेज़ देख सकेंगे और अधिक स्पष्टता के लिए:
http://docs.spring.io/spring-data/jpa/docs/1.4.3.RELEASE/reference/html/jpa.repositories.html
नहीं, यह विधि जिसे आपने लिखा है वह जेपीएएसपेसिफिकेशन एक्स्सेलर से है। मैं सिर्फ जेपीए रिपोजिटरी के बारे में बात कर रहा हूं। मैं विधि ढूंढ सकता हूं AllByFirstName (स्ट्रिंग फर्स्टनाम) और यह FindByFirstName के समान काम करेगा। इस सवाल में मैं उनके बीच अंतर को समझने की कोशिश कर रहा हूं। – Nikita
विवरण के लिए धन्यवाद – Nikita