我在课程和类别之间有一对多的关系
class Course {
String code
static hasMany = [categories:CourseCategory]
}
Class CourseCategory {
String name
}
我需要根据类别列表查询课程。我试过了这个问题
courseInstanceList = Course.findAll("from Course c inner join c.categories cts where cts.id in :categoryIds",[categoryIds:categoryIds])
但是这个查询返回了Courses和CourseCategories - 只是想知道如何创建一个只返回课程的查询?
答案 0 :(得分:0)
您可以使用createCriteria方法:
def c = Course.createCriteria()
println (c.listDistinct {
categories {
'in' 'id', [1L, 2L, 3L]
}
})
答案 1 :(得分:0)
差不多三年了......)
无论如何,这是答案:
courseInstanceList = Course.findAll("SELECT distinct c from Course c inner join c.categories cts where cts.id in :categoryIds",[categoryIds:categoryIds])
只获得类别:
courseInstanceList = Course.findAll("SELECT cts from Course c inner join c.categories cts where cts.id in :categoryIds",[categoryIds:categoryIds])