Grails:如何在多对多映射中查询对象?

jav*_*nes 9 grails grails-orm grails-domain-class

您好我有以下域类.

class Student {
   int age
   static hasMany = [courses:Course]
}

class Course {
   String name
   static hasMany = [students:Student]
}
Run Code Online (Sandbox Code Playgroud)

我想找到7岁的学生参加课程(身份1).

我可以使用动态查找程序或条件构建器或HQL吗?

我不想做跟随,因为它加载所有学生效率低下:

def course = Course.get(1);
course.students.findAll{ it.age == 7 }
Run Code Online (Sandbox Code Playgroud)

Vic*_*nko 22

def studs = Student.withCriteria {
  eq('age', 7)
  courses {
    eq('id', 1)
  }
}
Run Code Online (Sandbox Code Playgroud)

它位于GORM doc,"查询关联"部分.