0

我读到 am:m 关系通常意味着还不需要第三类。所以我有 m:m on Userand Project,我创建了第三个域类,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分配给他们的对象列表?

4

1 回答 1

2

有几种方法 - 这里有几个:

def user = User.get(userId)
ProjectMembership.findAllByUser(user).collect { it.project }

或避免查询用户:

ProjectMembership.withCriteria {
    user {
        eq('id', userId)
    }
}.collect { it.project }

警惕会返回大型结果集的查询 - 您最终会得到一个巨大的内存中项目对象列表。

于 2012-11-28T22:27:28.857 回答