setMaxResults Annotation pour Spring-Data-JPA
Spring-Data-JPA, une puissante bibliothèque d'abstraction de référentiel JPA, simplifie l'accès aux données dans Spring applications Java basées sur Cependant, définir le nombre maximum de résultats renvoyés par une requête à l'aide d'annotations a été un défi.
Solution Spring Data JPA 1.7.0 (Evans Release Train)
Dans Spring Data JPA 1.7.0 et versions ultérieures, la situation s'est améliorée. Vous pouvez désormais utiliser les mots-clés Top et First pour restreindre les résultats de requête. Par exemple :
findTop10ByLastnameOrderByFirstnameAsc(String lastname);
Spring Data limitera automatiquement le nombre de résultats renvoyés au nombre spécifié (par défaut à 1 en cas d'omission). Le classement des résultats devient crucial, soit via une clause OrderBy, soit via un paramètre Sort dans la méthode.
Avant Spring Data JPA 1.7.0
Avant cette amélioration, la récupération des tranches de données nécessitait l'utilisation de la pagination. Spring Data utilise une interface Pageable pour les demandes de pagination et une abstraction de page pour la gestion des résultats.
Implémentez l'interface du référentiel comme suit :
public interface UserRepository extends Repository<User, Long> { List<User> findByUsername(String username, Pageable pageable); }
Utilisez l'interface pour obtenir les résultats :
Pageable topTen = new PageRequest(0, 10); List<User> result = repository.findByUsername("Matthews", topTen);
Si des informations contextuelles sont requises, utilisez Page comme type de retour :
public interface UserRepository extends Repository<User, Long> { Page<User> findByUsername(String username, Pageable pageable); }
Le code client peut utiliser cela information :
Pageable topTen = new PageRequest(0, 10); Page<User> result = repository.findByUsername("Matthews", topTen); Assert.assertThat(result.isFirstPage(), is(true));
L'utilisation de Page comme type de retour déclenche l'exécution d'une requête de projection de nombre pour déterminer le nombre total d'éléments. De plus, pour garantir des résultats stables, incluez toujours les informations de tri dans la PageRequest.
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!