[英]Grails 3: find domains that were added to another one in many-to-many relationship (No value specified for parameter 1
我是 Grails 新手,我發現了以下障礙:
我有 2 個域:Course 和 Student,它們是多對多的關系(一個 Course 可以有幾個學生,一個學生可以注冊幾門課程)並且學生屬於該課程。
因此,當我將學生添加到課程時,我希望能夠找到哪些課程添加了特定學生。
我嘗試使用:
def s = Student.get(id)
def c = Course.findAllByStudents(s)
但是 grails 一直告訴我“沒有為參數 1 指定值”。
你們能不能對此有所了解?
Course.findAllByStudents
期望作為參數Set
of Students 但您提供的是 Student 的單個instance
,這就是為什么您會收到"No value specified for parameter 1"
。
找出哪些課程是學生。 如果您創建了這樣的域類:
class Course {
//some Course attributes
static hasMany = [students: Student]
}
class Student {
//some Student attributes
static hasMany = [courses: Course]
static belongsTo = Course
}
那么你可以簡單地使用s.courses
。
如果你不是雙向映射那關系。 您可以創建這樣的標准:
Course.withCriteria {
createAlias 'students', 's'
eq 's.elements', s
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.