2009-07-22 16 views
10

मैं हाइबरनेट डोमेन वस्तुओं है कि इस तरह दिखता है उस पर एक जादू के साथ जिसमें isSuperiorEnchantment ध्वज सेट है। मैं अपने जीवन के लिए एचक्यूएल में इसे व्यक्त करने का एक तरीका नहीं समझ सकता।HQL और एक-से-कई प्रश्न

कोई विचार?

उत्तर

17

ऊपर के सभी पर उचित मैपिंग मानते हुए, क्वेरी के लिए आप देख रहे हैं:

select p 
from Player as p 
    left join p.inventory as i 
    left join i.enchantments as e 
where e.isSuperiorEnchantment = 1 
+0

धन्यवाद, इस महान काम किया। मुझे इसके सामने "चयन पी" जोड़ने के लिए याद रखना था, लेकिन अन्यथा यह वही है जो मुझे चाहिए! –

+0

मैं सिर्फ एचक्यूएल सीख रहा हूं, लेकिन नियमित एसक्यूएल में यह काम नहीं करेगा - बाएं जुड़ने का मतलब यह होगा कि यदि आप सूची और जादू में कोई मेल नहीं खाते हैं तो भी आपको प्लेयर के परिणाम मिलेंगे। (मैं इस पर स्पष्टीकरण के लिए खुदाई रखूंगा ... मुझे संदेह है कि "बाएं शामिल" का अर्थ है एचक्यूएल में कुछ अलग है, या यह क्वेरी अधिक उपयोग नहीं होगी)। –

+1

@RobWhelan उपरोक्त क्वेरी काम करेगा (सिंटैक्स के लिए उपयुक्त समायोजन के साथ) 'e.isSuperiorEnchantment = 1' स्थिति के कारण नियमित एसक्यूएल में बस ठीक है जो बिना किसी जादू के खिलाड़ियों के लिए संतुष्ट नहीं होगा क्योंकि' SuperiorEnchantment' को वापस कर दिया जाएगा शून्य। – ChssPly76

संबंधित मुद्दे