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.
À 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.
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!