Grails GORM:列出所有嵌套属性

Grails GORM:列出所有嵌套属性,grails,groovy,gorm,Grails,Groovy,Gorm,我的(简化)域模型如下所示: class Student { static hasMany = [professions:StudentProfession]; } class StudentProfession { static belongsTo = [student:Student]; Profession profession; } class Profession { String name; } 最有效的方法是什么: 列出所有学习“程序员”

我的(简化)域模型如下所示:

class Student { 
    static hasMany = [professions:StudentProfession];
}

class StudentProfession { 
    static belongsTo = [student:Student];
    Profession profession;
}

class Profession { 
    String name;
}
最有效的方法是什么:

列出所有学习“程序员”和“经理”专业的学生

在查询数据库后,我是否必须过滤掉它们

students = students.findAll { student -> 
    student.professions.find { professionNames.contains(it.profession.name) } != null
}

可以使用GORM查询执行此操作:

def studends = Student.where {
  professions {
      profession.name == "Programmer" || profession.name == "Manager"
  }
}

给这只猫剥皮的方法很多-这里有一个:

StudentProfession.findAllByProfessionInList(Profession.findAllByNameInList(["Programmer","Manager"])*.student.unique()