Maison  >  Article  >  Java  >  Comment limiter les résultats dans les méthodes de requête Spring-Data-JPA ?

Comment limiter les résultats dans les méthodes de requête Spring-Data-JPA ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-28 02:42:02932parcourir

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

Comment utiliser l'annotation setMaxResults dans Spring-Data-JPA

Votre question concerne la définition du nombre maximum de résultats renvoyés par une méthode de requête dans Spring-Data-JPA à l'aide d'annotations.

Solution

Depuis Spring Data JPA 1.7.0 (Evans release train) a introduit les mots-clés Top et First, vous pouvez définir méthodes de requête comme celle-ci :

findTop10ByLastnameOrderByFirstnameAsc(String lastname);

Spring Data limitera automatiquement les résultats au nombre spécifié (par défaut à 1 en cas d'omission). N'oubliez pas que l'ordre des résultats devient important dans ce cas.

Versions précédentes

Dans les versions antérieures, Spring Data utilisait l'abstraction de pagination pour récupérer des tranches de données. Voici comment l'utiliser :

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

Si vous avez besoin du contexte du résultat, vous pouvez utiliser Page comme type de retour :

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

Notez que l'utilisation de Page comme type de retour déclenchera une projection de comptage 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