我注意到你可以直接将“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()只会给我分页结果,而不是所需的非分页结果。我该怎么做呢?
答案 0 :(得分:2)
您可以在使用条件时使用params
。我想你有一个不使用c.list
def c = Foo.createCriteria()
def results = c.list(params) {
not { eq("bar","test") }
}
假设params
有max
和offset
。
标准返回PagedResultList,您可以从中获取totalCount。所以
results.totalCount //results.getTotalCount()
应该给你总计数,尽管总是会触发第二个查询以获得总计数。在这种情况下,Hibernate会为您执行此操作,而不是您明确地执行此操作。