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.
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.
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!