Maison >Java >javaDidacticiel >Comment limiter les résultats dans les méthodes de requête Spring-Data-JPA ?
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!