簡體   English   中英

Grails 3:查找以多對多關系添加到另一個域的域(未為參數 1 指定值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM