我如何只创建一次条件(仅定义一个条件),在很多情况下必须绑定(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和Grails 2.0版本及更高版本提供的查询。
关于grails - 网格定义标准,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17421299/