2009-03-20 14 views
9

मेरे पास 2 इकाइयां हैं: कार और पहियों (एक टोमनी) और मैं अपने पहियों को सभी पहियों के साथ पुनर्प्राप्त करना चाहता हूं और यह पहियों द्वारा आदेश दिया गया यह मुश्किल हिस्सा है। स्थान। नीचे दिया गया कोड "अपमानजनक संग्रह को अवैध प्रयास" संदेश के साथ अपवाद फेंकता है।संग्रह के भीतर एचक्यूएल ऑर्डर

Select c 
    from Car 
     LEFT JOIN FETCH c.wheels 
order by c.wheels.location 

कोई विचार यह कैसे करना है और यदि यह एचक्यूएल में संभव है?

उत्तर

9
SELECT DISTINCT c 
    FROM Car 
     LEFT JOIN FETCH c.wheels AS wheels 
ORDER BY wheels.location 
+1

आप आरोही निर्दिष्ट कर सकते हैं:

SELECT DISTINCT c FROM Car c LEFT JOIN FETCH c.wheels AS wheels ORDER BY wheels.location 

नीचे hql ordering पर हाइबरनेट प्रलेखन से एक अंश है और 'एएससी' और' डीईएससी 'का उपयोग करके अवरोही क्रम। जैसे '... डीईएससी द्वारा ऑर्डर। –

1

हम्म। सोचो कि आपको उपनाम का उपयोग करने की आवश्यकता हो सकती है?

Select c from Car 
     LEFT JOIN FETCH c.wheels wheel 
order by wheel.location 
1

मुझे लगता है कि अनुरोध से में कार उर्फ ​​सेट करने के लिए है कि आप:

select cat from Cat cat 
     join cat.kittens kitten 
group by cat.id, cat.name, cat.other, cat.properties 
having avg(kitten.weight) > 100 
order by count(kitten) asc, sum(kitten.weight) desc 
संबंधित मुद्दे