मेरे पास एक बड़ी क्वेरी है (मेरे प्रश्न निर्माता में) और बहुत से बाएं जुड़ते हैं। इसलिए मुझे उनकी टिप्पणियों और टैग के साथ आलेख मिलते हैं।सिद्धांत 2: बाएं जॉइन/पेजिनेशन के साथ सीमित - सर्वश्रेष्ठ अभ्यास
$dql = 'SELECT blogpost, comment, tags
FROM BlogPost blogpost
LEFT JOIN blogpost.comments comments
LEFT JOIN blogpost.tags tags';
अब मान लीजिए कि मेरी डेटाबेस में 100 से अधिक ब्लॉगपोस्ट है, लेकिन मैं केवल पहले 10 चाहते हैं, लेकिन उन सभी 10 की टिप्पणियों और उनके सभी टैग के साथ है, अगर वे मौजूद हैं: चलो कहते हैं कि मैं निम्नलिखित DQL करते हैं । यदि मैं setMaxResults का उपयोग करता हूं तो यह पंक्तियों को सीमित करता है। तो मुझे पहले दो पद मिल सकते हैं, लेकिन उनमें से आखिरी में से कुछ की टिप्पणियां या टैग गायब हैं। तो फॉलोइन काम नहीं करता है।
$result = $em->createQuery($dql)->setMaxResults(15)->getResult();
मुश्किल से प्रलेखित Pagination समाधान है कि doctrine2.2 साथ जहाजों वास्तव में मेरे लिए काम नहीं करता है का उपयोग करना या तो के बाद से यह इतनी धीमी गति से है, मैं साथ ही सभी डेटा लोड कर सकते हैं।
मैंने Stackoverflow Article में समाधानों की कोशिश की, लेकिन यहां तक कि आलेख अभी भी एक सर्वोत्तम अभ्यास खो रहा है और प्रस्तुत समाधान घातक धीमा है।
क्या ऐसा करने के लिए कोई अच्छा अभ्यास नहीं है? कोई भी उत्पादन मोड में Doctrine2.2 का उपयोग नहीं कर रहा है?
कृपया अपने प्रश्न के लिए कोड जोड़ें, शायद उदाहरण के साथ परिणाम जो आप चाहते हैं, और जो भी हो रहा है उसे दिखाने के लिए। –