2011-05-06 3 views
7

Comment ne maxResult propriété des travaux de requête mise en veille prolongée? dans l'exemple ci-dessous:demande de résultat limite Hibernate

Query query = session.createQuery("from MyTable"); 
query.setMaxResults(10); 

Est-ce que cela obtient toutes les lignes de la base de données, mais seulement 10 d'entre eux sont affichés? ou c'est la même chose que limit en sql.

Répondre

11

Il est le même que celui LIMIT, mais il est la base de données indépendante. Par exemple MS SQL Server n'a pas LIMIT, donc Hibernate prend soin de traduire cela. Pour MySQL, il ajoute LIMIT 10 à la requête. Par conséquent, utilisez toujours query.setMaxResults(..) et query.setFirstResult(..) à la place des clauses SQL natives.

0

setMaxResults extrait toutes les lignes et affiche le nombre de lignes qui sont définies. Dans mon cas, je n'ai pas réussi à trouver une méthode qui ne puisse vraiment récupérer qu'un nombre limite de lignes. Ma recommandation est de créer vous-même la requête et d'y définir "rownum" ou "limit".

Questions connexes