क्या मैं इस तरह से ढूंढ सकता हूं? विभाग ढूंढें डिप्पेमेंट आईडी (लांग आईडी);
हां, यह वाक्यविन्यास वसंत जेपीए दृष्टिकोण से तकनीकी रूप से सही है। हालांकि स्प्रिंग जेपीए उस चीज का अनुमान लगाता है जो आप अपनी क्वेरी के साथ रिटर्न प्रकार को देखकर हासिल करने की कोशिश कर रहे हैं।
मूल रूप से इन वापसी प्रकार के लिए मामलों रहे हैं:
- आपकी क्वेरी के साथ
आप एक ही मान देने के लिए चाहते हैं - आप बुनियादी प्रकार निर्दिष्ट कर सकते हैं, Entity T
, Optional<T>
, CompletableFuture<T>
आदि
साथ आपकी क्वेरी आप टी का संग्रह वापस करना चाहते हैं - आप List<T>
, Stream<T>
, Page<T>
, Slice<T>
आदि
01 निर्दिष्ट कर सकते हैं
कहा जा रहा है, आपकी क्वेरी परिभाषा:
Department findByDepartmentId(Long Id);
मतलब यह है कि आपको एक ही परिणाम की उम्मीद (क्योंकि आप एक वापसी प्रकार के रूप में एक इकाई निर्दिष्ट किया है)। यह इस बात पर प्रतिबिंबित होगा कि कैसे वसंत जेपीए क्वेरी निष्पादित करता है - पर javax.persistence.Query
इंटरफ़ेस पर कॉल करेगा, जो exception
फेंक देगा यदि एक से अधिक ऑब्जेक्ट मानदंडों को पूरा करते हैं।
किस आधार पर पता चलता है कि डिज़ाइन आईडी एक रिकॉर्ड लौटाता है?
इस आधार पर कि उस आईडी के साथ एक ही वस्तु है, अन्यथा यह एक अपवाद फेंक देगा।
मुझे या क्यों उपयोग नहीं करना चाहिए खोजने के स्थान पर कोई नहीं?
उन दोनों के अलग-अलग अर्थ हैं और वे एक दूसरे के बीच नहीं हैं।
findOneBy
हमेशा परिणाम प्राप्त करने के परिणामस्वरूप SingleResult() को शामिल किया जाता है।
findBy
में ऊपर दिए गए परिभाषाओं के अनुसार रिटर्न प्रकार के आधार पर अलग-अलग व्यवहार हैं।
मेरे पास एक ही प्रश्न है, क्या आप इसके नीचे पहुंच गए हैं? – Doug