Grails3:在多对多关系中查找添加到另一个域的域(没有为参数1指定值)
我是Grails的新手,我发现了以下障碍: 我有两个领域:课程和学生,它们有多对多的关系(一门课程可以有几个学生,一个学生可以注册几个课程),学生属于该课程 因此,当我将一个学生添加到课程中时,我希望能够找到哪些课程添加了一个特定的学生 我尝试使用: def s=学生获取(id) def c=课程findAllByStudents(s) 但grails一直告诉我“没有为参数1指定值”Grails3:在多对多关系中查找添加到另一个域的域(没有为参数1指定值),grails,Grails,我是Grails的新手,我发现了以下障碍: 我有两个领域:课程和学生,它们有多对多的关系(一门课程可以有几个学生,一个学生可以注册几个课程),学生属于该课程 因此,当我将一个学生添加到课程中时,我希望能够找到哪些课程添加了一个特定的学生 我尝试使用: def s=学生获取(id) def c=课程findAllByStudents(s) 但grails一直告诉我“没有为参数1指定值” 你们能解释一下吗?课程。findAllByStudents期望作为学生的参数集,但你们提供了学生的单个实例,这就
你们能解释一下吗?
课程。findAllByStudents
期望作为学生的参数集
,但你们提供了学生的单个实例,这就是为什么你们得到“没有为参数1指定值”
查找学生在哪些课程中学习。如果您创建了如下域类:
class Course {
//some Course attributes
static hasMany = [students: Student]
}
class Student {
//some Student attributes
static hasMany = [courses: Course]
static belongsTo = Course
}
Course.withCriteria {
createAlias 'students', 's'
eq 's.elements', s
}
然后您可以简单地使用s.courses
如果您不是双向映射该关系。您可以创建如下条件:
class Course {
//some Course attributes
static hasMany = [students: Student]
}
class Student {
//some Student attributes
static hasMany = [courses: Course]
static belongsTo = Course
}
Course.withCriteria {
createAlias 'students', 's'
eq 's.elements', s
}
这是不够的信息。请提供完整的堆栈跟踪和域类代码。我现在觉得自己像个白痴。非常感谢。