grails中的PagedResultList问题2

时间:2013-10-08 10:46:57

标签: grails groovy grails-2.0

之前我使用的是1.3.7,并且该PagedResultList构造函数中的PagedResultList的构造函数正在接受列表。所以我的代码是

def result = [...]

def pagedResult = new PagedResultList(result)

现在构造函数更改为

PagedResultList(GrailsHibernateTemplate template, Criteria crit)

你能帮我把结果列表转换成2.x中的PagedResultList吗?

1 个答案:

答案 0 :(得分:4)

PagedResultList似乎已在Grails 2中进行了更改,以便在首次访问时懒惰地计算totalCount,而不是必须在最终可能不需要时预先计算的计数。但是由于Delegate AST transformation

,要编写自己的替代品,需要4行Groovy。
class MyPagedResultList {
  @Delegate List theList
  int totalCount
}

// create one using new MyPagedResultList(theList:result, totalCount:total)

转换的作用是自动将委托类型的所有方法(在本例中为List)添加到目标类型(在本例中为MyPagedResultList),通过委托给委托对象来实现。因此,MyPagedResultList实现了List接口,而无需手动写出所有相关方法。