将分页选项应用于Grails中的一对多列表

Rya*_*nch 5 grails groovy

我有一个用户类hasMany = [friends:User]

现在我正在尝试显示好友列表 - $ {user.friends}

但是,我希望能够像我一样应用参数,例如User.findAllBy(user,[max:10,sort:'dateCreated',order:'desc"])

有人可以告诉我如何在Grails/Groovy的一对多中做到这一点吗?

Bur*_*ith 3

我会使用 HQL:

String hql = '''
select u from User u, User u2
where u in elements(u2.friends) and u2=:user
order by u.dateCreated desc
'''
int max = ...
int offset = ...
def friends = User.executeQuery(hql, [user: user], [max: max, offset: offset])
Run Code Online (Sandbox Code Playgroud)

您可以尝试过滤朋友集合,但是一旦您对其执行任何操作,它就会从数据库中完全加载,因此,如果您只需要 10 个实例,那么您将浪费加载所有其余实例。