web-dev-qa-db-ja.com

Hibernateクエリの制限を設定する方法

この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);
8
Samuel Anertey

クエリを呼び出すときは、次を追加します。

.setFirstResult(firstResult).setMaxResults(limit);

[〜#〜]更新[〜#〜]

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

EntityManagerを使用する場合、次のようになります。

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

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

setFirstResult()

setMaxResults()

ただし、制限はデータベースベンダーに依存するため、HQLで使用することはできません。そのため、休止状態ではhqlクエリを使用できません。

3
Ankit Katiyar

Limitは、HQLでサポートされている句ではありませんでした。 setMaxResults()を使用することを目的としています。

1
Vu Ruby