Xeo*_*eon 2 grails groovy grails-orm
我的(简化)域模型如下所示:
class Student {
static hasMany = [professions:StudentProfession];
}
class StudentProfession {
static belongsTo = [student:Student];
Profession profession;
}
class Profession {
String name;
}
Run Code Online (Sandbox Code Playgroud)
什么是最有效的方式:
列出所有被授予"程序员"和"经理"职业的学生
在查询数据库后,我是否被迫过滤掉它们?
students = students.findAll { student ->
student.professions.find { professionNames.contains(it.profession.name) } != null
}
Run Code Online (Sandbox Code Playgroud)
您可以使用GORM查询执行此操作:
def studends = Student.where {
professions {
profession.name == "Programmer" || profession.name == "Manager"
}
}
Run Code Online (Sandbox Code Playgroud)