2013-07-18 12 views
6

このhqlクエリにはどのように制限を設定できますか?クエリにlimitキーワードを追加すると、エラーがスローされます。ハイバネートクエリの制限を設定する方法

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

答えて

13

あなたのクエリは、次を追加呼び出す:

.setFirstResult(firstResult).setMaxResults(limit); 

UPDATE

ドキュメント:
http://docs.jboss.org/hibernate/orm/3.6/javadocs/org/hibernate/Query.html#setMaxResults(int)

あなたはEntityManagerを使用した場合、それは次のようになります

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

setfirstresult(firstresult)の最初の結果は –

+0

を表していますか?@SamuelAnerteyどの結果行で始まるかを示します。この場合、その呼び出しは「結果0から始まる5つの結果を与えてください」と言っています。 MySQLの場合、 "limit 0,5"でクエリを終了するのと同等です。 –

3

Queryオブジェクトの2つのメソッドを使用できます。

setFirstResultメソッド()

はsetMaxResults()

が、制限は、データベース・ベンダー依存しているため、HibernateはHQLクエリーを通してそれを許可していないので、あなたはHQLで使用することはできません

0

制限は、HQLではサポートされた節ではありませんでした。あなたはsetMaxResults()を使うつもりです。

関連する問題