この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);
クエリを呼び出すときは、次を追加します。
.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);
Queryオブジェクトには2つのメソッドを使用できます。
setFirstResult()
setMaxResults()
ただし、制限はデータベースベンダーに依存するため、HQLで使用することはできません。そのため、休止状態ではhqlクエリを使用できません。
Limitは、HQLでサポートされている句ではありませんでした。 setMaxResults()を使用することを目的としています。