Maison >Java >javaDidacticiel >Comment limiter les résultats des requêtes en JPQL et HQL ?

Comment limiter les résultats des requêtes en JPQL et HQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-10 18:17:14403parcourir

How to Limit Query Results in JPQL and HQL?

Limiter les requêtes en JPQL et HQL

En JPQL ou HQL, il est possible de limiter le nombre de résultats renvoyés par une requête en utilisant le méthode setMaxResults. Cependant, les anciennes versions d'Hibernate permettaient aux utilisateurs d'utiliser une syntaxe similaire à la clause LIMIT de MySQL.

Prise en charge de Limit dans les anciennes versions d'Hibernate

Dans Hibernate 2, c'était possible d'effectuer des requêtes de limite en utilisant la syntaxe suivante :

SELECT * FROM a_table ORDER BY a_table_column DESC LIMIT 0, 20;

Cette syntaxe permettait aux utilisateurs de spécifier un décalage et un nombre maximum de résultats pour revenir.

Suppression de la prise en charge des limites dans Hibernate 3

Cependant, avec l'introduction d'Hibernate 3, la clause LIMIT n'était plus prise en charge dans HQL. Selon une réponse sur le forum Hibernate, cette fonctionnalité n'a jamais été destinée à faire partie de HQL.

Utilisation de setMaxResults() pour la limitation des résultats

Pour limiter le nombre des résultats renvoyés par une requête dans Hibernate 3, les utilisateurs doivent utiliser la méthode setMaxResults :

Query query = session.createQuery("FROM ATable ORDER BY aTableColumn DESC");
query.setMaxResults(20);
List<ATable> resultList = query.list();

Ceci La méthode prend une valeur entière comme argument, spécifiant le nombre maximum de résultats à renvoyer.

Conclusion

En conclusion, la clause LIMIT n'est pas supportée en JPQL et HQL dans Hibernate 3 et versions ultérieures. Au lieu de cela, les utilisateurs doivent utiliser la méthode setMaxResults pour limiter le nombre de résultats renvoyés par leurs requêtes.

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