Est qu'il y a moyen de faire défiler les résultats avec JPA/hibernate?
J'ai trouvé un indice dans Toplink
Query query = em.createQuery("SELECT e FROM Employee e ORDER BY e.lastName ASC, e.firstName ASC");
query.setHint("eclipselink.cursor.scrollable", true);
ScrollableCursor scrollableCursor = (ScrollableCursor)query.getSingleResult();
List<Employee> emps = scrollableCursor.next(10);
est qu'il y a jpa/hibernate alternative?
OriginalL'auteur yura | 2010-11-12
Vous devez vous connecter pour publier un commentaire.
À ma connaissance, il n'y a rien de standard dans la JPA.
Avec mise en veille prolongée, le plus proche de la solution, que je suis conscient de serait la
Query
/ScrollableResults
Api. À partir de la documentation:OriginalL'auteur Pascal Thivent
À en juger par les autres réponses JPA ne prend pas en charge le défilement directement, mais si vous utiliser Hibernate comme implémentation JPA vous pouvez faire
Qui accède au sous-jacente de l'api Hibernate pour le défilement, mais vous pouvez utiliser toutes les fonctionnalités de l'APP de l'interrogation. (Au moins pour les critères de requêtes à l'api JPA a certaines fonctionnalités qui ne sont pas dans l'ancienne api Hibernate.)
OriginalL'auteur JanKanis
Lors du traitement d'un grand nombre d'entités dans un grand projet de code sur la base de
List<E>
cas,Je doit écrire un Liste limitée de mise en œuvre avec seulement
Iterator
soutien à parcourir uneScrollableResults
sans refactoring tous les services de mise en œuvre et la méthode de prototypes à l'aide deList<E>
.Cette mise en œuvre est disponible dans mon IterableListScrollableResults.java Gist
Elle aussi régulièrement des bouffées de chaleur entités Hibernate de la session. Voici une façon de l'utiliser, par exemple lors de l'exportation de tous les non archivés des entités à partir de DB comme un fichier texte avec un
for
boucle:Avec l'espoir qu'il peut aider à
OriginalL'auteur Yves Martin
Également à l'aide de Données du Printemps serait une option. Là, vous pouvez spécifier la requête et de passer, comme un paramètre, une "PageRequest" dans lequel vous indiquez la taille de la page et le numéro de la page:
Pour cela, vous avez besoin de prolonger un PagingAndSortingRepository.
Juste comme une autre alternative pour la pagination sur les résultats.
Bien sûr, en dessous, c'est l'utilisation d'Hibernate, Toplink ou quoi que implémentation JPA vous configurez.
OriginalL'auteur frandevel
En JPA, vous pouvez utiliser la requête.setFirstResult et de la requête.setMaxResults
Vous pouvez également obtenir certains enregistrements ignorés ou doublé, dans le cas où vous allez "faire défiler" une base de données avec des données ajoutés/modifiés / supprimés en ligne, et les ajouts/suppressions de ce qui se passe près les limites de la page...
OriginalL'auteur Pau