2012-05-22 21 views
6

से चयन मैं MySQL के लिए निम्न क्वेरी ने लिखा है:जेपीए - COUNT में से मैक्स या चयन

SELECT subquery.t1_column1, 
    subquery.t2_id, 
    MAX(subquery.val) 
FROM (
    SELECT t1.column1 as t1_column1, 
     t1.id_t2 AS t2_id, 
     count(1) AS val 
    FROM table1 t1 
    INNER JOIN table2 t2 
    ON t2.id = t1.id_t2 
    GROUP BY t1.id_t2 
) subquery 
GROUP BY t1_column1 

और मैं यह जेपीए (JPQL या मापदंड क्वेरी) में अनुवाद करना चाहते हैं।

मैं कैसे इस अधिकतम बनाने के लिए पता नहीं है (गिनती) बात है, और जेपीए चयन में से चयन करें प्रतीत नहीं होता है ...

किसी देशी प्रश्नों के अलावा अन्य एक विचार है, तो (मैं अब के लिए यह करूँगा), यह बहुत अच्छा होगा।

उत्तर

3

मैं था जेपीए विनिर्देश की जाँच नहीं की है, लेकिन यह देखते हुए कि Hibernate documentation कहते

ध्यान दें कि HQL सबक्वेरी केवल चुनिंदा या जहां खंड में हो सकता है।

मुझे बहुत संदेह है कि आपकी क्वेरी को वैध जेपीक्यूएल क्वेरी में परिवर्तित किया जा सकता है।

आपको इस मूल SQL क्वेरी का उपयोग करना जारी रखना होगा।

+0

यह एक मान्य JPQL क्वेरी बिल्कुल नहीं है, यह है देशी SQL.My लक्ष्य इसका अनुवाद करना है जेपीक्यूएल में देशी प्रश्नों से परहेज करना संभव है। यदि यह नहीं है तो मैं इसके साथ रह सकता हूं, बस जानना चाहता था। – Bob

+0

आह, ठीक है। तो मेरा जवाब है: आप इसे जेपीक्यूएल में अनुवाद करने में सक्षम नहीं होंगे। –

+0

हाँ, वैसे भी धन्यवाद। – Bob

2

जेपीए 2.0 जेपीक्यूएल खंड से उप-चयन का समर्थन नहीं करता है। आप अपनी क्वेरी को फिर से लिखने की कोशिश कर सकते हैं, या मूल SQL क्वेरी का उपयोग कर सकते हैं।

EclipseLink 2.4 FROM खंड में उप चयन का समर्थन करेंगे,

देखते हैं,

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Sub-selects_in_FROM_clause