Как писать заказ и ограничивать запрос в jpa
Возможный дубликат:
Выберите первый результат с помощью JPA
Я хочу получить 10 лучших результатов на основе "totalTradedVolume", зарегистрированного в моей таблице "MasterScrip"
когда я напишу следующий запрос:
Collection<MasterScrip> sm=null;
sm=em.createQuery("select m from MasterScrip m where m.type = :type order by m.totalTradedVolume limit 2").setParameter("type", type).getResultList();
я получаю следующее исключение:
Caused by: java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Syntax error parsing the query [select m from MasterScrip m where m.type = :type order by m.totalTradedVolume limit 2], line 1, column 78: unexpected token [limit].
Internal Exception: NoViableAltException([email protected][])
что-то не так с моим запросом jpa. может кто-нибудь исправить меня?
Ответы
Ответ 1
limit
не распознается в JPA. Вместо этого вы можете использовать метод query.setMaxResults
:
sm = em.createQuery("select m from MasterScrip m where m.type = :type
order by m.totalTradedVolume")
.setParameter("type", type)
.setMaxResults(2).getResultList()
Ответ 2
Вы можете работать с методами Query setFirstResult and setMaxResult