我读到m:m关系通常意味着还没有第三类。所以我在User
和Project
上有m:m,我创建了第三个域类ProjectMembership
这三个域如下(为便于说明而最小化):
用户
class User {
String name
static hasMany = [projectMemberships : ProjectMembership]
}
项目成员
class ProjectMembership {
static constraints = {
}
static belongsTo = [user:User, project:Project]
}
项目:
class Project {
String name
static hasMany = [projectMemberships : ProjectMembership]
static constraints = {
}
}
如果我有用户ID,我如何获得分配给他们的
Project
对象的列表?
最佳答案
有几种方法-以下是几种方法:
def user = User.get(userId)
ProjectMembership.findAllByUser(user).collect { it.project }
或避免查询用户:
ProjectMembership.withCriteria {
user {
eq('id', userId)
}
}.collect { it.project }
警惕那些会返回较大结果集的查询-您最终将获得庞大的项目对象内存列表。
关于grails - 使用 'join'第三类使许多人陷入困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13615503/