मैं वास्तव में परिणामों की सूची प्राप्त किए बिना गतिशील रूप से जेनरेट की गई एचक्यूएल क्वेरी के परिणामों की गिनती प्राप्त करना चाहता हूं। का कहना है कि क्वेरी मेरे पास है कुछ की तरह:हाइबरनेट एचक्यूएल: वास्तव में उन्हें वापस लौटने के बिना परिणामों की गिनती प्राप्त करें
select Company company LEFT OUTER JOIN FETCH products product
मैं हाइबरनेट दस्तावेज में पढ़ा है कि:
आप उन्हें लौटने के बिना क्वेरी परिणामों की संख्या की गणना कर सकते हैं:
((Integer) session.createQuery("select count(*) from ....").iterate().next()).intValue()
मुझे संदेह है कि मुझे को बदलना चाहिए .... मेरी क्वेरी के साथ, लेकिन यह काम नहीं करता है, क्योंकि एचक्यूएल supp नहीं है ओआरटी से उप-चयन करता है।
तो, मुझे गतिशील रूप से जेनरेट की गई एचक्यूएल क्वेरी के परिणामों की गणना कैसे करनी चाहिए? मुझे लगता है कि इसे निष्पादित करके और परिणाम सूची का .size() प्राप्त करना अनावश्यक ओवरहेड हो सकता है।
चीयर्स!
** अद्यतन: **
मैं अपने जिज्ञासा को बदलने को यह regex प्रयोग किया है:
Number num = (Number) em.createQuery(dynamicQuery.replaceAll("select \\w+ from ", "select count(*) from ")).getSingleResult();
और मैं इस मिल:
Blockquote
EJB अपवाद:; नेस्टेड अपवाद है: java.lang.IllegalArgumentException: org.hibernate.QueryException: क्वेरी में शामिल होने में निर्दिष्ट क्वेरी शामिल है, लेकिन प्राप्त किए गए एसोसिएशन का मालिक चुनिंदा सूची में मौजूद नहीं था [सेलेमेंट {स्पष्ट, संग्रह में शामिल नहीं होना, शामिल होना, गैर- -lazy गुण, classAlias = उत्पाद, भूमिका = org.myCompany.applicant.entity.Aplplantant.products, tableName = PRS_DEV.PRODUCT, tableAlias = products1_, मूल = PRS_DEV.APPLICANT applicant0_, colums = {applicant0_.APPLICANT_ID, className = org। myCompany.product.entity.Product}}] [org.myCompany.applicant.entity से गिनती () का चयन करें। आवेदनकर्ता आवेदक बाएं बाहरी जॉइन फ़ेच आवेदक.प्रॉडक्ट्स उत्पाद]; नेस्टेड अपवाद है: java.lang.IllegalArgumentException: org.hibernate.QueryException: क्वेरी में शामिल होने में निर्दिष्ट क्वेरी शामिल है, लेकिन प्राप्त किए गए एसोसिएशन का मालिक चुनिंदा सूची में मौजूद नहीं था [सेलेमेंट {स्पष्ट, संग्रह में शामिल नहीं होना, शामिल होना, गैर- -lazy गुण, classAlias = उत्पाद, भूमिका = org.myCompany.applicant.entity.Aplplantant.products, tableName = PRS_DEV.PRODUCT, tableAlias = products1_, मूल = PRS_DEV.APPLICANT applicant0_, colums = {applicant0_.APPLICANT_ID, className = org। org.myCompany.applicant.entity.Applicant आवेदक वाम बाहरी से myCompany.product.entity.Product}}] [चयन गणना () शामिल हों applicant.products उत्पाद]
हाँ, मुझे लगता है कि कोशिश की है। मुझे एक अपवाद मिलता है: क्वेरी अपवाद: क्वेरी में शामिल होने में निर्दिष्ट क्वेरी, लेकिन प्राप्त सूची में मालिक चयनित सूची में मौजूद नहीं था। पूर्ण स्टैक ट्रेस –
@ मार्कोस के लिए मेरा अपडेट देखें: मैंने अपना जवाब अपडेट कर दिया है। – Henning
धन्यवाद आदमी, यह काम किया! –