Unter Verwendung des Ruhezustands möchte ich ein Objekt auswählen, das einer ganzen Liste von Objekten zugeordnet ist. Ich möchte durch diese Liste paginieren, um das gefürchtete Hibernate n + 1 Problem zu vermeiden
Hier ist eine funktionierende Lösung, die 11 Fahrten zu der Datenbank für 10 Elternobjekte benötigt.
%Vor%Und hier ist eine Lösung, die nur eine sql-Anweisung (hurray) ausführt, aber die Paginierung nicht verarbeiten kann, dh setMaxResults und setFirstResult sind beim übergeordneten Objekt Mother (boo)
falsch %Vor%Dies scheint so eine allgemeine Anforderung zu sein, aber ich habe nach einer Lösung gesucht, die kein Glück bringt.
Irgendwelche Abnehmer?
Es ist schwierig, es auf eine Abfrage zu bringen (d. h. ich kenne keine portable Lösung), aber es ist ziemlich einfach, es auf zwei Abfragen (unabhängig von n) zu reduzieren:
%Vor% Bei einigen Datenbanken funktioniert möglicherweise auch das Subselect-Holen von children
.