Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pagination dans Hibernate avec des tables jointes

La pagination ne fonctionne pas avec les collections jointes car elle compte toutes les lignes qui ont satisfait le where prédicat (Hibernate n'a rien à voir avec cela, c'est ainsi que fonctionnent les bases de données, par exemple Oracle rownum ).

La façon habituelle de surmonter cela est d'utiliser des sous-requêtes, de sorte que rownum (ou l'équivalent dans la base de données utilisée) est appliqué aux lignes sélectionnées d'une seule table (ou tables jointes qui sont dans des relations à un).

En HQL :

select p from Parent p were p in (select c.parent from Child c where ...)

Les équivalents aux critères peut être construit de la même manière.