我有2个域类:项目和用户。
项目通过一个名为allowedUsers的SortedSet在User上具有hasMany。用户不属于项目。
我想找到允许特定用户查看的所有项目。所以尝试像这样的语法:
Project.findAll{ it.allowedUsers.contains( userA ) }
Project.findAll{ userA in it.allowedUsers }
这些不起作用。而且查找表示法似乎不支持ThatContains运算符之类的东西。
我如何实现我的目标?
最佳答案
条件应该起作用,请查看http://grails.org/doc/latest/guide/GORM.html#criteria中的“查询关联”部分。您可以尝试以下方法:
def c = Project.createCriteria()
def results = c.list {
allowedUsers{
eq('id', userA.id)
}
}