我之前使用的是 1.3.7,而 PagedResultList 构造函数中的 PagedResultList 构造函数正在接受列表。所以我的代码是
def result = [...]
def pagedResult = new PagedResultList(result)
现在构造函数更改为
PagedResultList(GrailsHibernateTemplate template, Criteria crit)
您能帮我在 2.x 中将结果列表转换为 PagedResultList 吗?
最佳答案
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)
转换的作用是自动将委托(delegate)类型的所有方法(在本例中为
List
)添加到目标类型(在本例中为 MyPagedResultList
),通过委托(delegate)给委托(delegate)对象来实现。所以它使MyPagedResultList
实现List
接口(interface),而无需手动写出所有相关方法。
关于grails - grails 2中的PagedResultList问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19245643/