2011-06-14 16 views
8

मैं हाइबरनेट दस्तावेज पढ़ रहा हूं, लेकिन मुझे कुछ भी नहीं मिला है जो बताएगा कि निम्नलिखित कैसे करें।हाइबरनेट - एचक्यूएल कई खंडों में शामिल है

SELECT {msg.*}, {cmd.*} 
FROM Schema.Messages AS msg 
    LEFT OUTER JOIN schema.send_commands AS cmd 
    ON cmd.message_key = msg.unique_key 
    AND (lower(cmd.status) IN (lower('failed'))) 
WHERE msg.sequence_received < 10"; 

mainissue मैं आ रही है कि मैं में शामिल होने के एक वाम बाहरी पर दो खंड है करने में असमर्थ हूँ:

मुझे लगता है कि मैं HQL में बदलने की कोशिश कर रहा हूँ निम्नलिखित एसक्यूएल कोड है। HQL मुझे ON cmd.message_key = msg.unique_key की अनुमति देता है, लेकिन मैं AND clause 2?

उत्तर

15

आप अतिरिक्त with कीवर्ड, कुछ इस तरह का उपयोग कर की स्थिति में शामिल होने के लिए जोड़ सकते हैं कैसे जोड़ सकता हूँ (आपकी मानचित्रण पर निर्भर करता है):

SELECT m, c 
FROM Message m LEFT JOIN m.commands c WITH (lower(c.status) = 'failed') 
WHERE m.sequenceReceived < 10 

देखें भी:

+0

धन्यवाद। यह काम किया। क्या यह दो तर्कों के साथ भी काम करेगा: 'के साथ (निचला (c.status) = 'विफल') और (c.dateReceived iliaden

+0

@iliaden: हाँ, यह काम करना चाहिए। – axtavt

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