11

如何设置此 hql 查询的限制?当我在查询中添加限制关键字时,会引发错误。

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

3 回答 3

15

当您调用查询时,添加以下内容:

.setFirstResult(firstResult).setMaxResults(limit);

setFirstResult是(可选)偏移量,setMaxResults是限制。

更新

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

如果你使用 entityManager,它可能是这样的:

entityManager.createQuery("yourQuery").setFirstResult(0).setMaxResults(5);
于 2013-07-18T23:51:49.680 回答
3

您可以使用 Query 对象的两种方法。

setFirstResult() // 偏移量

setMaxResults() // 限制

但是您不能在 HQL 中使用它,因为限制取决于数据库供应商,因此休眠不允许通过 hql 查询

于 2014-06-25T11:10:05.210 回答
1

在 HQL 中,限制从来都不是受支持的子句。您应该使用 setMaxResults()。

于 2016-08-05T04:50:25.733 回答