你能将控制器列表参数与Hibernate标准结合起来吗?

时间:2013-10-04 16:40:10

标签: java hibernate grails gorm

我注意到你可以直接将“params”传递给下面的样板代码:

[fooInstanceList: Foo.list(params), fooInstanceTotal: Foo.count()]

是否可以将“params”作为Hibernate标准的一部分传递,例如下面的那个?

def c = Foo.createCriteria()
    def results = c {
        not { eq("bar","test") }
    }

    [fooInstanceList: results, fooInstanceTotal: results.size()]

我希望使用“max”和“offset”参数,以便我可以使用它进行分页。我还想使用相当于计算所有非分页结果的计数。我认为results.size()只会给我分页结果,而不是所需的非分页结果。我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

您可以在使用条件时使用params。我想你有一个不使用c.list

的拼写错误
def c = Foo.createCriteria()
def results = c.list(params) {
    not { eq("bar","test") }
}

假设paramsmaxoffset

标准返回PagedResultList,您可以从中获取totalCount。所以

results.totalCount //results.getTotalCount()

应该给你总计数,尽管总是会触发第二个查询以获得总计数。在这种情况下,Hibernate会为您执行此操作,而不是您明确地执行此操作。