2011-08-15 6 views
6

this question से ली गई है, यह संभव निम्नलिखित SQL विवरण के लिये HQL या मानदंड का उपयोग है 3.6.6 एकमामला बयान या मानदंड

QuerySyntaxException के साथ विफल: अप्रत्याशित टोकन: मामला

जब मैं क्वेरी ऊपर बनाने एक EntityManager उदाहरण पर।

मैन्युअल रूप से पुरुषों की संख्या निर्धारित करने के लिए प्रत्येक e.type के लिए एक और क्वेरी बनाने के लिए यह कितना बुरा विचार है, उदा। प्रत्येक e.type

SELECT 
    count(e), 
from Department d 
JOIN d.employees e 
WHERE e.dead = 'maybe', e.type = ugly 

चूंकि वहां कुछ प्रकार हो सकते हैं, यह संभावित रूप से धीमा है। मैं डेटाबेस को मेरे लिए काम करना चाहता हूं।

उत्तर

11

ठीक है, ऐसा लगता है, मामले बयान समर्थित हैं:

http://docs.jboss.org/hibernate/core/3.5/reference/en/html/queryhql.html

वे सिर्फ गिनती के भीतर काम करने नहीं लग रहे()। एक विकल्प योग का उपयोग करेगा (केस जब ... फिर 1 और 0 अंत) instead

+0

धन्यवाद, यह सिर्फ मुझे पागल होने से बचाया। यहां [बग रिपोर्ट] है (https://hibernate.onjira.com/browse/HHH-4150)। यह साल पुराना है, लेकिन अभी भी अनसुलझा है ... –

+1

क्या हम इसे मानदंड क्वेरी का उपयोग कर कर सकते हैं ?? –

+0

यह मानदंड एपीआई के साथ भी काम करता है। – gillesB