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

def hasMany=[followedUsers:User]

我不需要做反向操作(查找遵循特定用户对象的所有用户对象)而不设置反向关系,因为这不是经常执行的用例。我试图使用闭包来做这样的事情:
User.findAll { it.followedUsers.contains(userInstance) }

但这总是返回数据库中的所有用户,无论其关注状态如何。我尝试过使用HQL,但同样失败了。

谁能给我快速的指南来最简单地实现这一目标?谢谢你。

最佳答案

您可以使用以下HQL查询:

User.executeQuery(
   'select u from User u where :follower in elements(u.followedUsers)',
   [follower: userInstance])

09-12 04:16