मेरे स्प्रिंग बूट एप्लिकेशन में मेरे पास Person.class नामक एक इकाई है, जिसमें शामिल है
long id;
String email;
String name;
String surname;
String address;
डीएओ कक्षा में, मेरे पास एक विधि है:
List<Person> findAllByEmail(String email);
जो डेटाबेस से पूछताछ करता है और व्यक्ति की सूची देता है।
मैं केवल कुछ विशेषताओं वाले व्यक्ति की सूची वापस करना चाहता हूं, उदाहरण के लिए:
long id;
String email;
पूरी वस्तु वापस किए बिना।
यह क्वेरी निष्पादित करने के बराबर होगा:
"select id, email from person where email = ?"
लेकिन मैं डीएओ में फ़ंक्शन क्वेरी को बनाए रखना चाहता हूं:
List<Person> findAllByEmail(String email);
प्रश्नों को हाथ से लिखे बिना।
मैं यह कैसे कर सकता हूं ?
2 जवाब
आप JPA अनुमानों का उपयोग कर सकते हैं
- वांछित कॉलम के गेटर्स के साथ इंटरफेस बनाएं
interface WithIdAndEmail {
long getId();
String getEmail();
}
- उस इंटरफ़ेस का उपयोग विधि के रिटर्न प्रकार के रूप में करें
List<WithIdAndEmail> findAllByEmail(String email);
किसी विधि से एकाधिक मान लौटाना संभव नहीं है। आपकी कॉलिंग विधि में, जब लौटाए गए List<Person>
पर पुनरावृति होती है, तो आपको List
में से प्रत्येक Person
से आवश्यक फ़ील्ड को स्थानीय चर में पढ़ना चाहिए और उनके साथ काम करना चाहिए।
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।