Grails GORM使用HQL查询关联的许多方面

时间:2012-02-15 19:38:46

标签: grails hql gorm

我在课程和类别之间有一对多的关系

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 - 只是想知道如何创建一个只返回课程的查询?

2 个答案:

答案 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])