如何设置此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);
答案 0 :(得分:14)
当您致电查询时,请添加以下内容:
.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);
答案 1 :(得分:3)
您可以使用Query对象的两种方法。
setFirstResult()共用
setMaxResults()
但你不能在HQL中使用它,因为限制是数据库供应商依赖的,所以hibernate不允许它通过hql查询
答案 2 :(得分:1)
在HQL中,Limit永远不是受支持的子句。您应该使用setMaxResults()。