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

时间:2017-06-28 12:03:08

标签: 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)

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

1 个答案:

答案 0 :(得分:1)

我建议使用createCriteria方法使用条件API在数据库中搜索记录。这是例如:

 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