को अद्यतन करने के एक नए हाइबरनेट संस्करण (लगता है कि यह JBoss से 6 JBoss 4.2.2 से स्विच के साथ आया था) को अपग्रेड करने के बाद के बाद विफल रहता है में शामिल होने, कुछ क्वेरी संदेश के साथ विफल:"स्वचालित" नेस्टेड संस्थाओं को लाना हाइबरनेट
SELECT entityA FROM EntityA entityA
JOIN FETCH entityA.entityB
LEFT JOIN FETCH entityA.entityB.someField
WHERE entityA.entityB.anotherField LIKE :someParameter
समस्या का समाधान "entityA.entityB" एक उपनाम दे रहा है और उसके बाद WHERE
खंड में इस अन्य नाम का उपयोग करने के लिए: Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list [FromElement{explicit,not a collection join,fetch join,fetch non-lazy properties,classAlias=null,role=null,tableName= (...)
ऐसा हमेशा जब इस तरह एक प्रश्न का उपयोग कर रहा है। लेकिन कुछ प्रश्नों में LEFT JOIN FETCH
स्पष्ट रूप से नहीं दिया गया है लेकिन अभी भी WHERE
खंड संदर्भित इकाई की संपत्ति का उपयोग करता है। क्या यह भी असफल होगा? क्या बदल गया है, ताकि यह एक नए जेबॉस संस्करण में स्विच करने के बाद अचानक विफल हो जाए?
निम्नलिखित question इस प्रश्न से संबंधित है और समाधान शामिल है, लेकिन समस्या को समझा नहीं है।
आपके प्रश्न ने मुझे समस्या के समाधान को समझने में मदद की, हाइबरनेट 3.2.6.ga से 3.5.6-फाइनल तक अपग्रेड करने के बाद, मुझे 'क्वेरी निर्दिष्ट करने में शामिल क्वेरी मिल रही थी, लेकिन प्राप्त संघ का मालिक नहीं था चयनित सूची में मौजूद ', उपर्युक्त दृष्टिकोण का उपयोग करके आपने सुझाव दिया है कि यह काम करता है, हालांकि' क्यों 'के साथ आपकी मदद नहीं कर सकता! –
यह एचक्यूएल या मानक जेपीक्यूएल है? – wrschneider
यह 'EntityManager.createQuery' के माध्यम से किया जाता है, इसलिए मुझे लगता है कि यह एचक्यूएल है। –