我怎样才能只创建(只定义)一个标准,我必须在很多条件下绑定(bind)多个表(所以如果我理解正确必须使用 withCriteria
)。然后稍后执行条件两次以获得结果。
请帮助我尝试了多种方法,但没有得到它的工作......
我正在尝试这样的事情
def histories = TerminHistory.withCriteria{....} //only define it at this point
def historiesDisplay = histories.list(max: 10, offset: 10) //run it
def historiesCount = histories.count() //run it
最佳答案
您需要DetachedCriteria对于这些懒惰的操作。查询关联的子将再次分离。
一种 detachedCriteria 的形式是使用 where .看wherQueries它的工作方式与 detachedCriteria 相同。扩展您的示例:
def histories = TerminHistory.where{....} //only defined it at this point
//def histories = new DetachedCriteria(TerminHistory).build{....}
def historiesDisplay = histories.list(max: 10, offset: 10) //run it
def historiesCount = histories.count() //run it
笔记:-
DetachedCriteria 和 Where 查询可从 Grails 2.0 版本及更高版本获得。
关于Grails 定义标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17421299/