Quelle est la différence entre setMaxResults et setFetchSize dans org.hibernate.Query?

Quelle est la différence entre setMaxResults et setFetchSize dans org.hibernate.Query? Je ne peux tout simplement pas l’obtenir =)

setMaxResults est identique à LIMIT dans SQL – vous définissez le nombre maximal de lignes à renvoyer. Ceci est un cas d’utilisation très courant bien sûr.

setFetchSize concerne l’ optimisation , ce qui peut changer la façon dont Hibernate envoie les résultats à l’appelant (par exemple: tamponné, en différentes tailles). setFetchSize n’est PAS implémenté par tous les pilotes de firebase database.

setMaxResults limite le nombre de résultats que la requête obtiendra jamais.

setFetchSize indique au pilote jdbc le nombre de lignes à renvoyer dans un bloc, pour les requêtes volumineuses. Disons que vous voulez 1000 lignes. Si vous définissez la taille d’extraction sur 100, la firebase database renverra 100, puis 100 autres lorsque vous en voudrez plus, etc. setFetchSize ne fera rien si votre pilote ne le prend pas en charge.

Par exemple, si la table a 100 enregistrements, alors

 criteria.setMaxResults(25); 

ne récupèrera que 25 enregistrements sur 100, et

 criteria.setFetchSize(20); 

va chercher 20 enregistrements à chaque fois jusqu’à ce qu’il lise les 100 enregistrements de la table.