setMaxResults Annotation for Spring-Data-JPA
Spring-Data-JPA, eine leistungsstarke JPA-Repository-Abstraktionsbibliothek, vereinfacht den Datenzugriff in Spring -basierte Java-Anwendungen. Das Festlegen der maximalen Anzahl von Ergebnissen, die von einer Abfrage mithilfe von Anmerkungen zurückgegeben werden, war jedoch eine Herausforderung.
Spring Data JPA 1.7.0 (Evans Release Train) Solution
In Mit Spring Data JPA 1.7.0 und höher hat sich die Situation verbessert. Sie können jetzt die Schlüsselwörter „Top“ und „First“ verwenden, um die Abfrageergebnisse einzuschränken. Zum Beispiel:
findTop10ByLastnameOrderByFirstnameAsc(String lastname);
Spring Data begrenzt die Anzahl der zurückgegebenen Ergebnisse automatisch auf die angegebene Anzahl (standardmäßig 1, wenn weggelassen). Die Reihenfolge der Ergebnisse wird entscheidend, entweder durch eine OrderBy-Klausel oder einen Sort-Parameter in der Methode.
Vor Spring Data JPA 1.7.0
Vor dieser Verbesserung Das Abrufen von Datenausschnitten erforderte die Verwendung von Paginierung. Spring Data verwendet eine Pageable-Schnittstelle für Paginierungsanforderungen und eine Seitenabstraktion für die Ergebnisverarbeitung.
Implementieren Sie die Repository-Schnittstelle wie folgt:
public interface UserRepository extends Repository<User, Long> { List<User> findByUsername(String username, Pageable pageable); }
Verwenden Sie die Schnittstelle, um die Ergebnisse zu erhalten:
Pageable topTen = new PageRequest(0, 10); List<User> result = repository.findByUsername("Matthews", topTen);
Wenn Kontextinformationen erforderlich sind, verwenden Sie „Page“ als Rückgabetyp:
public interface UserRepository extends Repository<User, Long> { Page<User> findByUsername(String username, Pageable pageable); }
Der Clientcode kann diese Informationen nutzen:
Pageable topTen = new PageRequest(0, 10); Page<User> result = repository.findByUsername("Matthews", topTen); Assert.assertThat(result.isFirstPage(), is(true));
Verwenden von „Page“ als Rückgabetyp Der Typ löst die Ausführung einer Zählprojektionsabfrage aus, um die Gesamtzahl der Elemente zu ermitteln. Um stabile Ergebnisse zu gewährleisten, fügen Sie außerdem immer Sortierinformationen in die PageRequest ein.
Das obige ist der detaillierte Inhalt vonWie schränke ich Abfrageergebnisse mit Anmerkungen in Spring Data JPA ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!