से बचने मत करो यह, चयन नई नहीं है क्योंकि वहाँ इसके लिए पूरी तरह से वैध उपयोग के मामलों के रूप में §10.2.7.2 में याद दिलाया है।
एक निर्माता चयन सूची में इस्तेमाल किया जा सकता एक या अधिक जावा उदाहरणों वापस जाने के लिए: का चयन करें खण्ड EJB 3.0 JPA Specification की में JPQL निर्माता भाव। निर्दिष्ट कक्षा एक इकाई होने के लिए या डेटाबेस में मैप किए गए होने की आवश्यकता नहीं है। कन्स्ट्रक्टर का नाम पूरी तरह से योग्य होना चाहिए।
एक इकाई वर्ग के नाम का चयन करें नई खंड में निर्दिष्ट है, तो जिसके परिणामस्वरूप इकाई उदाहरणों नए राज्य में हैं।
SELECT NEW com.acme.example.CustomerDetails(c.id, c.status, o.count)
FROM Customer c JOIN c.orders o
WHERE o.count > 100
संक्षेप में, का चयन करें नई का उपयोग जब आप एक पूर्ण इकाई या एक प्रकार सुरक्षित तरीका में वस्तुओं की एक पूरी ग्राफ (के रूप में एक Object[]
के खिलाफ) को पुनः प्राप्त करने नहीं करना चाहती। चाहे आप किसी इकाई वर्ग या गैर मैप किए गए वर्ग में किसी क्वेरी का परिणाम मैप करते हैं, वह आपके चयन पर निर्भर करेगा। एक सामान्य उदाहरण एक सूची स्क्रीन होगी (जहां आप सभी विवरण नहीं चाहते हैं)।
दूसरे शब्दों में, इसे हर जगह उपयोग न करें, लेकिन इसका उपयोग न मनाएं (कुछ चीजें केवल काले या सफेद हैं)।
स्रोत
2010-03-01 21:31:33
मैं वही काम करना चाहता हूं लेकिन मेरी पूछताछ में मेरे पास कुछ शामिल हो गए हैं और जेपीए शिकायत करते हैं: 'निर्दिष्ट प्रश्न पूछने में शामिल है, लेकिन प्राप्त सूची का मालिक चुनिंदा सूची में मौजूद नहीं था'। दुख ... –
कृपया अपना उत्तर संपादित करें और "कन्स्ट्रक्टर का नाम पूरी तरह से योग्य होना चाहिए" बोल्ड .. यह बहुत महत्वपूर्ण है और त्रुटियों का एक आम स्रोत है। –
उत्तर पूरी तरह से सही है, लेकिन जुड़ा हुआ दस्तावेज़ उत्तर से मेल नहीं खाता है। यह http://jcp.org/aboutJava/communityprocess/final/jsr317/index होना चाहिए।एचटीएमएल – Pumuckline