Ich habe eine große Abfrage (in meinem Abfrage-Generator) und viele Links Joins. So bekomme ich Artikel mit ihren Kommentaren und Tags und so weiter. Lassen Sie uns sagen, dass ich die folgende dql haben:Doctrine2: Begrenzung mit Links Joins/Pagination - Best Practice
$dql = 'SELECT blogpost, comment, tags
FROM BlogPost blogpost
LEFT JOIN blogpost.comments comments
LEFT JOIN blogpost.tags tags';
Jetzt sagen lassen Sie uns meine Datenbank mehr als 100 Blogeinträge hat, aber ich möchte nur die ersten 10, aber mit all den Kommentaren von denen 10 und alle ihre Tags, wenn sie vorhanden sind . Wenn ich setMaxResults verwende, begrenzt es die Zeilen. So könnte ich die ersten zwei Posts bekommen, aber der letzte von denen fehlt einige seiner Kommentare oder Tags. Also funktioniert das folgende nicht.
$result = $em->createQuery($dql)->setMaxResults(15)->getResult();
die kaum dokumentiert Pagination Lösung verwenden, die Schiffe mit doctrine2.2 wirklich für mich nicht funktioniert entweder, da es so langsam ist, könnte ich auch alle Daten geladen werden.
Ich habe versucht, die Lösungen in der Stackoverflow Article, aber auch dieser Artikel fehlt noch eine Best Practice und die vorgestellte Lösung ist tödlich langsam.
Gibt es keine Best Practice, wie man das macht? Verwendet niemand Doctrine2.2 im Produktionsmodus?
Bitte fügen Sie den Code, den Sie haben, zu Ihrer Frage hinzu, vielleicht sogar mit Beispielergebnissen, um zu zeigen, was Sie wollen und was Sie bekommen. –