如何在 Grails 中搜索其集合包含另一个元素的元素?

2024-01-21

假设我有一个名为“User”的域类,它可以跟随其他“User”对象。它这样做的时候有一个字段指定为:

def hasMany=[followedUsers:User]

我需要执行相反的操作(查找遵循特定 User 对象的所有 User 对象)而不设置反向关系,因为它不是经常执行的用例。我尝试使用闭包来做这样的事情:

User.findAll { it.followedUsers.contains(userInstance) }

但这总是返回数据库中的所有用户,无论他们的关注状态如何。我尝试使用 HQL 进行操作,但也惨遭失败。

谁能给我一个关于完成此任务的最简单方法的快速指示?谢谢。


您可以使用此 HQL 查询:

User.executeQuery(
   'select u from User u where :follower in elements(u.followedUsers)',
   [follower: userInstance])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Grails 中搜索其集合包含另一个元素的元素? 的相关文章

随机推荐