Maison >Java >javaDidacticiel >Comment limiter les résultats des requêtes dans Hibernate 3 (sans utiliser LIMIT) ?

Comment limiter les résultats des requêtes dans Hibernate 3 (sans utiliser LIMIT) ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-31 04:39:10236parcourir

How to Limit Query Results in Hibernate 3 (without using LIMIT)?

Limiter les requêtes en JPQL ou HQL

Dans Hibernate 3, l'équivalent de la clause MySQL LIMIT en HQL n'est pas directement disponible. Les tentatives de l'utiliser dans HQL entraîneront une erreur, car LIMIT n'est pas une clause prise en charge.

À l'origine, cette fonctionnalité était involontairement disponible dans Hibernate 2 en raison d'une bizarrerie dans l'analyseur HQL. Il a remplacé les éléments HQL reconnus tout en laissant les parties non reconnues, permettant aux utilisateurs de se faufiler dans les instructions SQL natives.

Cependant, dans Hibernate 3, l'analyseur HQL a été considérablement amélioré et utilise un AST (arbre de syntaxe abstraite). Cette implémentation d'analyse stricte interdit explicitement les clauses non prises en charge telles que LIMIT.

Par conséquent, l'approche recommandée pour limiter les résultats des requêtes dans Hibernate 3 consiste à utiliser la méthode setMaxResults() sur l'objet Query. Cette option permet de contrôler le nombre maximum de résultats renvoyés par la requête, obtenant ainsi la même fonctionnalité que la clause LIMIT.

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