假设我有一个名为“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])
关于grails - 如何在 Grails 中搜索其集合中包含另一个元素的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8946232/