2013-07-18 13 views
6

Come posso impostare un limite per questa query hql? Quando aggiungo la parola chiave limite nella query, viene generato un errore.Come impostare il limite per una query di ibernazione

@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); 

risposta

13

Quando si chiama la query aggiungere i seguenti:

.setFirstResult(firstResult).setMaxResults(limit); 

UPDATE

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

Se si utilizza entityManager, può essere come:

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

Si prega di wat fa il firstresult in setfirstresult (firstresult) rappresentano –

+0

@SamuelAnertey dice quale riga del risultato per iniziare. In questo caso, quella chiamata sta dicendo "dammi fino a 5 risultati, a partire dal risultato 0". Nel caso di MySQL, sarebbe l'equivalente di terminare la query con "limite 0,5". –

3

È possibile utilizzare due metodi di oggetto Query.

setFirstResult()

setMaxResults()

ma non è possibile utilizzarlo in HQL perché il limite è fornitore del database dipende in modo di ibernazione non lo permette tramite query HQL

0

Il limite non è mai stato una clausola supportata in HQL. Si intende utilizzare setMaxResults().

Problemi correlati