Maison  >  Article  >  Java  >  Comment limiter les résultats des requêtes dans Spring Data JPA ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-10-28 08:21:02772parcourir

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);

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);
}

Vous pouvez utiliser cette interface comme ceci :

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

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);
}

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!

Déclaration:
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