我如何只创建一次条件(仅定义一个条件),在很多情况下必须绑定(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/

    10-11 05:57