Ограничить количество результатов в JPQL - PullRequest
51 голосов
/ 13 августа 2010

Как можно ограничить количество результатов, извлекаемых из базы данных?

select e from Entity e /* I need only 10 results for instance */

Ответы [ 2 ]

64 голосов
/ 16 августа 2010

Вы можете попробовать вот так, чтобы получить 10 результатов, которые будут извлечены явно.

entityManager.createQuery(JPQL_QUERY)
             .setParameter(arg0, arg1)
             .setMaxResults(10)
             .getResultList();

Он автоматически создаст собственный запрос в бэкэнде для получения определенного количества результатов, если бэкэнд его поддерживает, и в противном случае сделает ограничение в памяти после получения всех результатов.

20 голосов
/ 11 июня 2012

Вы также можете установить смещение, используя setFirstResult ()

    em.createNamedQuery("Entity.list")
      .setFirstResult(startPosition)
      .setMaxResults(length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...