Heim >Java >javaLernprogramm >Wie kann ich Abfrageergebnisse in JPQL und HQL einschränken?
Abfragen in JPQL und HQL begrenzen
In JPQL oder HQL ist es möglich, die Anzahl der von einer Abfrage zurückgegebenen Ergebnisse zu begrenzen setMaxResults-Methode. Ältere Versionen von Hibernate erlaubten Benutzern jedoch die Verwendung einer Syntax ähnlich der LIMIT-Klausel von MySQL.
Unterstützung für Limit in älteren Versionen von Hibernate
In Hibernate 2 war dies der Fall Es ist möglich, Grenzwertabfragen mit der folgenden Syntax durchzuführen:
SELECT * FROM a_table ORDER BY a_table_column DESC LIMIT 0, 20;
Mit dieser Syntax konnten Benutzer einen Offset und eine maximale Anzahl angeben Anzahl der Ergebnisse, die zurückgegeben werden sollen.
Entfernung der Limit-Unterstützung in Hibernate 3
Mit der Einführung von Hibernate 3 wurde die LIMIT-Klausel jedoch in HQL nicht mehr unterstützt. Laut einer Antwort im Hibernate-Forum war diese Funktion nie als Teil von HQL gedacht.
Verwendung von setMaxResults() zur Ergebnisbegrenzung
Um die Anzahl zu begrenzen Für die Anzahl der von einer Abfrage in Hibernate 3 zurückgegebenen Ergebnisse müssen Benutzer setMaxResults verwenden Methode:
Query query = session.createQuery("FROM ATable ORDER BY aTableColumn DESC"); query.setMaxResults(20); List<ATable> resultList = query.list();
Diese Methode verwendet einen ganzzahligen Wert als Argument und gibt die maximale Anzahl der zurückzugebenden Ergebnisse an.
Schlussfolgerung
In Fazit: Die LIMIT-Klausel wird in JPQL und HQL in Hibernate 3 und späteren Versionen nicht unterstützt. Stattdessen müssen Benutzer die setMaxResults-Methode verwenden, um die Anzahl der von ihren Abfragen zurückgegebenen Ergebnisse zu begrenzen.
Das obige ist der detaillierte Inhalt vonWie kann ich Abfrageergebnisse in JPQL und HQL einschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!