hibernate - Grails GORM JOIN in query -
मेरे पास एक इकाई है जो कि मैं क्वेरी को बनाना चाहता हूं जो विशिष्ट उपयोगकर्ता को निर्दिष्ट सभी नोटिफिकेशन प्राप्त करता है, लेकिन मुझे मैं मेरी क्वेरी (जैसा है सीएस कहते हैं): परन्तु अभी भी एन + 1 क्वेरी उत्पन्न होती हैं। मैंने भी लाए जाने की विधि सेट करने का प्रयास किया है: सफलता के बिना। / P> क्या आप मुझे Grails के इस व्यवहार की व्याख्या कर सकते हैं? दुर्भाग्य से यह हाइबरनेट या Grails बग: समाधान मिश्रित प्राथमिक कुंजी कंपोन प्राथमिक कुंजी मिलती है के लिए काम नहीं करता है। साथ ही ठीक से काम नहीं कर रहा है। अधिसूचना और
उपयोगकर्ता :
वर्ग अधिसूचनाएरिजिएपमेंट लागू करना सीरियलजैबल {सूचना अधिसूचना उपयोगकर्ता प्राप्तकर्ता प्रयोक्ता स्थिर मानचित्रण = {टेबल 'अधिसूचना_प्रतिष्ठित' संस्करण झूठी अधिसूचना कैस्केड: 'सभी' प्राप्तकर्ता उपयोगकर्ता कास्केड: 'सभी' आईडी जनरेटर: 'असाइन', संमिश्र : ['अधिसूचना', 'प्राप्तकर्ताउज़र']}}
सूचना फ़ील्ड चाहिए उत्सुक उत्प्रेरित से पूछताछ अनुभाग में उल्लेखित के रूप में एन + 1 से बचने के लिए पॉपुलेटेड होने के लिए परिणाम पर पुनरावृत्त किया जा रहा है (डिफ़ॉल्ट जानकारी के लिए प्रत्येक क्वेरी के लिए एक क्वेरी और एक आधिकारिक फ़ील्ड के अनुसार प्रत्येक चयन का चयन करें)।
मानचित्रण को बदलना नहीं चाहता और
अधिसूचना से
आलसी: गलत को सेट करें, लेकिन इसे क्वेरी में निर्दिष्ट करें ()।
def resut = NotificationRecipient.createCriteria ()। सूची (विकल्प? .पेराम?: [:]) {Eq ("recipientUser.id", userId) 'सूचना' }
नोटिफिकेशन रीसिपेंट.सुरक्षितता () .list (विकल्प? .पेराम?: [:]) {Eq ("recipientUser.id", userId) fetchMode "सूचना", FetchMode.JOIN}
आईडी जनरेटर हटाया जाता है: 'असाइन', समग्र: ['अधिसूचना', 'प्राप्तकर्ता उपयोगकर्ता'] ।
Comments
Post a Comment