2013-07-18 21 views
6

Bu hql sorgusuna nasıl bir sınır koyabilirim? Limit anahtar kelimeyi sorguya eklediğimde bir hata atılır.Hazırda bekletme sorgusu için sınır nasıl ayarlanır

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

cevap

13

Eğer sorgu aşağıdakileri ekleyin diyoruz:

.setFirstResult(firstResult).setMaxResults(limit); 

GÜNCELLEME

Dokümanlar: Eğer EntityManager kullanırsanız
http://docs.jboss.org/hibernate/orm/3.6/javadocs/org/hibernate/Query.html#setMaxResults(int)

, bu gibi olabilir:

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

Lütfen firstfunstres (firstresult) 'deki firstresult, –

+0

@SamuelAnertey' i temsil ederek hangi sonuç satırının başlayacağını belirtir. Bu durumda, bu çağrı "0 ile başlayarak bana 5 sonuç ver" diyor. MySQL söz konusu olduğunda, sorgunuzu "0,5 limiti" ile sonlandırmak eşdeğer olacaktır. –

3

İki yöntem Sorgu nesnesini kullanabilirsiniz.

setFirstResult()

setMaxResults()

ancak sınır veritabanı satıcı bağımlı olduğu için hazırda hql sorgusu buna izin vermez böylece HQL bunu kullanamaz

0

Limit, HQL'de asla desteklenen bir maddedir. SetMaxResults() işlevini kullanmanız gerekir.

İlgili konular