Heim  >  Artikel  >  Java  >  Wie kann man die Ergebnisse in Spring-Data-JPA-Abfragemethoden einschränken?

Wie kann man die Ergebnisse in Spring-Data-JPA-Abfragemethoden einschränken?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-28 02:42:02932Durchsuche

How to Limit Results in Spring-Data-JPA Query Methods?

So verwenden Sie die setMaxResults-Annotation in Spring-Data-JPA

Ihre Frage bezieht sich auf das Festlegen der maximalen Anzahl von Ergebnissen, die von einer Abfragemethode zurückgegeben werden in Spring-Data-JPA mithilfe von Anmerkungen.

Lösung

Seit Spring Data JPA 1.7.0 (Evans Release Train) die Top- und First-Schlüsselwörter eingeführt hat, können Sie diese definieren Abfragemethoden wie diese:

findTop10ByLastnameOrderByFirstnameAsc(String lastname);

Spring Data begrenzt die Ergebnisse automatisch auf die angegebene Anzahl (standardmäßig 1, wenn weggelassen). Denken Sie daran, dass in diesem Fall die Reihenfolge der Ergebnisse wichtig ist.

Frühere Versionen

In früheren Versionen verwendete Spring Data die Paginierungsabstraktion zum Abrufen von Datenausschnitten. So verwenden Sie es:

public interface UserRepository extends Repository<User, Long> {

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

//...

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

Wenn Sie den Kontext des Ergebnisses benötigen, können Sie Page als Rückgabetyp verwenden:

public interface UserRepository extends Repository<User, Long> {

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

//...

Pageable topTen = new PageRequest(0, 10);
Page<User> result = repository.findByUsername("Matthews", topTen);
Assert.assertThat(result.isFirstPage(), is(true));

Beachten Sie, dass Sie Page als Rückgabetyp verwenden löst eine Zählprojektion aus, um die Gesamtzahl der Elemente zu ermitteln.

Das obige ist der detaillierte Inhalt vonWie kann man die Ergebnisse in Spring-Data-JPA-Abfragemethoden 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