Grails-通过父集合中存在子对象来查找所有对象
我有两个域类:Project和User 项目通过一个名为allowedUsers的SortedSet拥有许多on User。用户不属于项目 我想找到允许特定用户查看的所有项目。因此,尝试以下语法:Grails-通过父集合中存在子对象来查找所有对象,grails,groovy,Grails,Groovy,我有两个域类:Project和User 项目通过一个名为allowedUsers的SortedSet拥有许多on User。用户不属于项目 我想找到允许特定用户查看的所有项目。因此,尝试以下语法: Project.findAll{ it.allowedUsers.contains( userA ) } Project.findAll{ userA in it.allowedUsers } 这些不起作用。而且find符号似乎不支持类似于ThatContains运算符的东西 如何实现我的目标?标准
Project.findAll{ it.allowedUsers.contains( userA ) }
Project.findAll{ userA in it.allowedUsers }
这些不起作用。而且find符号似乎不支持类似于ThatContains运算符的东西
如何实现我的目标?标准应该有效,请查看中的“查询关联”部分。你能试一下吗
def c = Project.createCriteria()
def results = c.list {
allowedUsers{
eq('id', userA.id)
}
}
标准应该有效,请查看中的“查询关联”部分。你能试一下吗
def c = Project.createCriteria()
def results = c.list {
allowedUsers{
eq('id', userA.id)
}
}
您也可以尝试
where
查询
def query = Project.where{
allowedUsers{id == userA.id}
}
def results = query.list()
或HQL
def query = """
select p from Project as p
inner join p.allowedUsers as user
where user.id = :user
"""
def results = Project.executeQuery(query, [user: userA.id])
您也可以尝试
where
查询
def query = Project.where{
allowedUsers{id == userA.id}
}
def results = query.list()
或HQL
def query = """
select p from Project as p
inner join p.allowedUsers as user
where user.id = :user
"""
def results = Project.executeQuery(query, [user: userA.id])
此外,createCriteria似乎不支持“contains”运算符,因此认为该运算符不起作用。此外,createCriteria似乎不支持“contains”运算符,因此认为该运算符不起作用。