Heim >Java >javaLernprogramm >Wie kann ich Abfrageergebnisse in JPQL und HQL einschränken?

Wie kann ich Abfrageergebnisse in JPQL und HQL einschränken?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-10 18:17:14355Durchsuche

How to Limit Query Results in JPQL and HQL?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn