我正在使用Oracle和Grails 1.3.7,并且有这种情况:


class Publisher {
  static hasMany = [books : Book]
}
class Book {
  Publisher pub
  Date datePublished
}

PublisherController
def show = {
   def publisherInstance = Publisher.get(params.id)
   ...
}

假设每个出版商都有数千本书。在Publisher.get(params.id)以后,PublisherInstance将附带大量书籍。在 Controller 的show Action 中,是否可以按datePublished对显示的书进行分页?我在玩withCriteria,但没有任何运气。

谢谢!

最佳答案

加载Publisher时,只有在访问books集合后才加载书籍-正是由于这个原因,它才按需延迟加载。如果您要检索几本出版商的书籍,请使用查询,例如

def publisherInstance = Publisher.get(params.id)

int offset = ...
def books = Book.findAllByPublisher(publisherInstance, [max: 10, offset: offset])

并选择正确的页面,请根据分页参数计算offset

10-06 01:20