Mysql
 sql >> база данни >  >> RDS >> Mysql

Пагинация в хибернация със съединени таблици

Пагинацията не работи с обединени колекции, защото отчита всички редове, които отговарят на where предикат (Hibernate няма нищо общо с това, това е как работят базите данни, например Oracle rownum ).

Обичайният начин за преодоляване на това е да използвате подзаявки, така че rownum (или еквивалентът в използваната база данни) се прилага към избраните редове само от една таблица (или свързани таблици, които са във връзки към едно).

В HQL:

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

Еквивалентът на критериите може да се изгради по подобен начин.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да превърна тази MySQL SELECT заявка в DELETE заявка?

  2. Как да използвам ON DUPLICATE KEY UPDATE в MySQL без УНИКАЛЕН индекс или ПЪРВИЧЕН КЛЮЧ?

  3. MySQL LEFT JOIN Множество условия

  4. Как да преброите всички записи, но да извлечете само (LIMIT) конкретен номер за показване?

  5. Ако таблица съществува, пуснете таблицата, тогава я създайте, ако не съществува, просто я създайте