2013-07-18 10 views
6

Jak ustawić limit dla tego kwerendy hql? Po dodaniu słowa kluczowego limit w zapytaniu zostanie zgłoszony błąd.Jak ustawić limit dla zapytania hibernacji

@Query("from voucher v where v.voucherType.typeDescription = :typeDescription and v.denomination = :denomination") 
public List<Voucher> findByVoucherTypeAndDenomination(@Param("typeDescription") String typeDescription,@Param("denomination") BigDecimal denomination); 

Odpowiedz

13

Po wywołaniu zapytanie dodać następujące:

.setFirstResult(firstResult).setMaxResults(limit); 

UPDATE

Dokumenty:
http://docs.jboss.org/hibernate/orm/3.6/javadocs/org/hibernate/Query.html#setMaxResults(int)

Jeśli używasz EntityManager, to może być tak:

entityManager.createQuery("yourQuery").setFirstResult(0).setMaxResults(5); 
+0

Proszę, czy pierwszy wynik w setfirstresult (firstresult) reprezentuje –

+0

@SamuelAnertey mówi, który wiersz wyniku na początek. W tym przypadku wywołanie to "daj mi do 5 wyników, zaczynając od wyniku 0". W przypadku MySQL będzie to odpowiednik zakończenia zapytania z "limitem 0,5". –

3

Można użyć dwóch metod obiektu zapytania.

setFirstResult()

setMaxResults()

ale nie można go używać w HQL ponieważ granica jest sprzedawca bazy danych zależny tak hibernacji nie pozwala na to poprzez zapytania HQL

0

Limit nigdy nie był obsługiwaną klauzulą ​​w HQL. Jesteś przeznaczony do użycia setMaxResults().

Powiązane problemy