Sql 在hql中分页结果的最佳方法是什么

Sql 在hql中分页结果的最佳方法是什么,sql,performance,grails,pagination,hql,Sql,Performance,Grails,Pagination,Hql,我想在grails应用程序中对结果进行分页。对于查询,我使用hql。查询的工作原理如下 List response= Order.executeQuery(selectQuery + queryWhere, [offset:command.offset, max:command.max]) 但是,仅显示过滤后的值是不够的。我必须显示查询在没有过滤的情况下带来了多少结果。此刻 def count=Order.executeQuery("select count(*)" + queryWhere)

我想在grails应用程序中对结果进行分页。对于查询,我使用hql。查询的工作原理如下

List response= Order.executeQuery(selectQuery + queryWhere, [offset:command.offset, max:command.max])
但是,仅显示过滤后的值是不够的。我必须显示查询在没有过滤的情况下带来了多少结果。此刻

def count=Order.executeQuery("select count(*)" + queryWhere)

为了提高效率,我想知道是否有可能只进行一次技巧调用查询?因为基本上,我调用同一个查询两次。我正在寻找最有效的方法

我建议使用createCriteria方法使用CriteriaAPI在数据库中搜索记录。以下是示例,例如:

 def orderListCriteria = Order.createCriteria()
    def list = orderListCriteria.list(max:max,offset:offset) {
                eq("user",user)
                eq("",)   //actual filter query
                order(,)
            }
   def count = list.totalCount // this will give total count 

谢谢你的建议,我需要一个sql或hql的解决方案。关于这一点,HQL如何实现这一点?