Maison >Java >javaDidacticiel >Comment limiter les résultats des requêtes en JPQL et 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!