का उपयोग करने के लिए अंतर्निहित जुड़ने के लिए कैसे मजबूर करें Offer
है जिसमें वैकल्पिक कक्षा Article
से संबंधित संबंध है। ताकि कुछ आलेख संपत्ति प्रदान करता है null
मान रखता है।हाइबरनेट/जेपीए: बाएं बाहरी जॉइन
यदि मैं निम्नलिखित कथन का उपयोग करता हूं, तो सब कुछ ठीक काम करता है। मुझे सभी ऑफ़र मिल गए, यहां तक कि जिनके पास कोई आलेख नहीं है।
SELECT o FROM Offer o
LEFT OUTER JOIN o.article a
LEFT OUTER JOIN o.vendor v
WHERE v.number = '0212' OR o.article.nummer = '123456'
मैं केवल इन लेखों NULL
से अलग होने के ऑफर मिल गया:
SELECT o FROM Offer o
LEFT OUTER JOIN o.article a
LEFT OUTER JOIN o.vendor v
WHERE v.number = '0212' OR a.nummer = '123456'
तो मैं बयान के बदल जाते हैं। ऐसा इसलिए है क्योंकि अंतर्निहित के लिए संकेत (o.article.nummer
) एक आंतरिक शामिल होने को मजबूर करता है।
क्या अंतर्निहित जॉइन (एनोटेशन संचालित या कुछ और) में बाएं बाहरी जुड़ने को मजबूर करने की संभावना है? यदि मैं इस तरह एक संक्षिप्त रूप इस्तेमाल कर सकते हैं एक मौका है:
SELECT o FROM Offer o
WHERE v.number = '0212' OR o.article.nummer = '123456'
मेरे लिए इस समस्या को हल नहीं किया! –
मुझे नहीं पता कि यह समस्या को कैसे हल करना चाहिए।AFAIK Fetchmode केवल निर्दिष्ट करता है कि ऑब्जेक्ट को स्मृति में प्रारंभ करने के लिए डेटा कैसे प्राप्त करें, क्वेरी में शामिल होने के तरीके के बारे में नहीं। –