Maison > Java > javaDidacticiel > le corps du texte

Comment limiter les résultats des requêtes dans Spring Data JPA ?

Barbara Streisand
Libérer: 2024-10-28 08:21:02
original
771 Les gens l'ont consulté

How to Limit Query Results in Spring Data JPA?

Annotation pour setMaxResults dans Spring Data JPA

Dans les versions Spring Data JPA antérieures à 1.7.0, il n'était pas possible de limiter le nombre de résultats renvoyés par une méthode de requête annotée utilisant setMaxResults. Cependant, cette fonctionnalité a été introduite dans Spring Data JPA 1.7.0.

Nouvelle fonctionnalité dans Spring Data JPA 1.7.0

À partir de Spring Data JPA 1.7 .0 (Evans release train), vous pouvez utiliser les nouveaux mots-clés Top et First pour définir des méthodes de requête qui limitent automatiquement les résultats. Par exemple :

findTop10ByLastnameOrderByFirstnameAsc(String lastname);
Copier après la connexion

Spring Data limitera automatiquement les résultats au nombre que vous avez défini (par défaut à 1 en cas d'omission). Notez que l'ordre des résultats devient pertinent ici, soit via une clause OrderBy comme vu dans l'exemple, soit en transmettant un paramètre Sort dans la méthode.

Pagination dans les versions précédentes

Dans les versions de Spring Data JPA antérieures à 1.7.0, la pagination était gérée à l'aide de l'interface Pageable du côté demandeur et de l'abstraction de page du côté résultat. Voici un exemple :

public interface UserRepository extends Repository<User, Long> {

  List<User> findByUsername(String username, Pageable pageable);
}
Copier après la connexion

Vous pouvez utiliser cette interface comme ceci :

Pageable topTen = new PageRequest(0, 10);
List<User> result = repository.findByUsername("Matthews", topTen);
Copier après la connexion

Si vous avez besoin de plus d'informations sur le résultat (comme de quelle page il s'agit ou combien de pages il y a sont au total), utilisez Page comme type de retour :

public interface UserRepository extends Repository<User, Long> {

  Page<User> findByUsername(String username, Pageable pageable);
}
Copier après la connexion

Cela déclenchera une projection de comptage de la requête à exécuter pour déterminer le nombre total d'éléments.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal