J'ai une combinaison de critères de recherche implémentés en utilisant les critères de mise en veille prolongée. Et j'ai ajouté une mise en page comme ceci:count (*) dans les critères d'hibernation?
criteria.setFirstResult(offset).setMaxResults(pageSize).setFetchSize(pageSize).list();
Cela ne suffit pas pour une mise en page, donc je compte la taille totale de résultat.
totalResult = (Integer)criteria.setProjection(Projections.rowCount()).uniqueResult();
Le problème est, la première fois que je soumets le formulaire de recherche, je me suis totalResult correcte. Lorsque je clique sur la page suivante, et que le décalage change, j'ai une NullPointExcetion à la deuxième déclaration. Je ne sais pas pourquoi. Et grâce au débogage, je peux voir quand cette exception se produit, la première déclaration renvoie avec succès les résultats paginés.
Donc, je veux demander, la première déclaration est-elle en conflit avec la seconde? (parce que la première instruction a mis le fetchsize à 10, et je me demande si la fonction count (*) fonctionnera correctement ils sont tâche différente utilisant les mêmes critères, Comment puis-je cloner ou copier un critère qui a déjà de nombreuses restrictions ont été ajoutées?
Merci, en fait ma solution est exactement la même chose avec vos réponses. Ça marche ! – Sawyer