"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > स्प्रिंग डेटा जेपीए ग्रुप बाय क्वेरीज़ से कस्टम ऑब्जेक्ट कैसे लौटाएं?

स्प्रिंग डेटा जेपीए ग्रुप बाय क्वेरीज़ से कस्टम ऑब्जेक्ट कैसे लौटाएं?

2024-12-22 को प्रकाशित
ब्राउज़ करें:547

How to Return Custom Objects from Spring Data JPA GROUP BY Queries?

क्वेरी द्वारा स्प्रिंग डेटा जेपीए ग्रुप में कस्टम ऑब्जेक्ट रिटर्न

परिचय


पुनर्प्राप्त करना स्प्रिंग डेटा जेपीए ग्रुप BY क्वेरीज़ से कस्टम ऑब्जेक्ट के रूप में डेटा डेटा प्रस्तुति को बढ़ाता है और आगे की प्रक्रिया को सरल बनाता है। यह मार्गदर्शिका बताती है कि इसे कैसे प्राप्त किया जाए, JPQL और मूल क्वेरीज़ दोनों के लिए समाधान प्रदर्शित किए जाएं।

JPQL क्वेरीज़


JPA विनिर्देश के भीतर JPQL क्वेरीज़ मूल पेशकश करती हैं कस्टम ऑब्जेक्ट लौटाने के लिए समर्थन।

चरण 1: एक कस्टम बीन बनाएं


एक सरल परिभाषित करें वांछित आउटपुट संरचना का प्रतिनिधित्व करने के लिए बीन क्लास:

public class SurveyAnswerStatistics {
  private String answer;
  private Long cnt;

  // Constructor
}

चरण 2: बीन इंस्टेंस लौटाएं


कस्टम बीन के इंस्टेंस वापस करने के लिए रिपॉजिटरी विधि को अपडेट करें:

public interface SurveyRepository extends CrudRepository {
    @Query("SELECT new com.path.to.SurveyAnswerStatistics(v.answer, COUNT(v)) FROM Survey v GROUP BY v.answer")
    List findSurveyCount();
}

मूल प्रश्न


हालांकि मूल प्रश्नों में नए कीवर्ड के लिए प्रत्यक्ष समर्थन की कमी है, स्प्रिंग डेटा प्रोजेक्शन इंटरफेस एक वैकल्पिक समाधान प्रदान करते हैं:

चरण 1: एक प्रोजेक्शन इंटरफ़ेस को परिभाषित करें


वांछित गुणों के साथ एक प्रोजेक्शन इंटरफ़ेस बनाएं आउटपुट:

public interface SurveyAnswerStatistics {
  String getAnswer();
  int getCnt();
}

परिणाम फ़ील्ड को प्रक्षेपण गुणों में निर्बाध रूप से मैप करने के लिए SQL AS कीवर्ड का उपयोग करें।


नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3