Grails GORM:列出所有嵌套属性

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)

Ben*_*chi 7

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

def studends = Student.where {
  professions {
      profession.name == "Programmer" || profession.name == "Manager"
  }
}
Run Code Online (Sandbox Code Playgroud)