Heim  >  Artikel  >  Java  >  Wie kann ich Abfrageergebnisse in Spring Data JPA begrenzen?

Wie kann ich Abfrageergebnisse in Spring Data JPA begrenzen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-28 08:21:02778Durchsuche

How to Limit Query Results in Spring Data JPA?

Annotation for setMaxResults in Spring Data JPA

In Spring Data JPA-Versionen vor 1.7.0 war eine Einschränkung nicht möglich die Anzahl der Ergebnisse, die von einer mit Anmerkungen versehenen Abfragemethode mithilfe von setMaxResults zurückgegeben werden. Diese Funktion wurde jedoch in Spring Data JPA 1.7.0 eingeführt.

Neue Funktionalität in Spring Data JPA 1.7.0

Ab Spring Data JPA 1.7 .0 (Evans Release Train) können Sie mit den neu eingeführten Top- und First-Schlüsselwörtern Abfragemethoden definieren, die die Ergebnisse automatisch einschränken. Zum Beispiel:

findTop10ByLastnameOrderByFirstnameAsc(String lastname);

Spring Data begrenzt die Ergebnisse automatisch auf die von Ihnen definierte Anzahl (standardmäßig 1, wenn weggelassen). Beachten Sie, dass die Reihenfolge der Ergebnisse hier relevant wird, entweder durch eine OrderBy-Klausel, wie im Beispiel gezeigt, oder durch die Übergabe eines Sort-Parameters an die Methode.

Paginierung in früheren Versionen

In Versionen von Spring Data JPA vor 1.7.0 wurde die Paginierung über die Pageable-Schnittstelle auf der anfordernden Seite und die Seitenabstraktion auf der Ergebnisseite gehandhabt. Hier ist ein Beispiel:

public interface UserRepository extends Repository<User, Long> {

  List<User> findByUsername(String username, Pageable pageable);
}

Sie können diese Schnittstelle folgendermaßen verwenden:

Pageable topTen = new PageRequest(0, 10);
List<User> result = repository.findByUsername("Matthews", topTen);

Wenn Sie weitere Informationen zum Ergebnis benötigen (z. B. um welche Seite es sich handelt oder wie viele Seiten vorhanden sind). sind insgesamt), verwenden Sie Page als Rückgabetyp:

public interface UserRepository extends Repository<User, Long> {

  Page<User> findByUsername(String username, Pageable pageable);
}

Dies löst eine Zählprojektion der auszuführenden Abfrage aus, um die Gesamtzahl der Elemente zu bestimmen.

Das obige ist der detaillierte Inhalt vonWie kann ich Abfrageergebnisse in Spring Data JPA begrenzen?. 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