Hibernate GORM-在Grails中查询一对多关联

Hibernate GORM-在Grails中查询一对多关联,hibernate,grails,hql,gorm,criteria,Hibernate,Grails,Hql,Gorm,Criteria,我有课程领域 class Course { String name static hasMany = [categories: Category] } 类别域类 class Category { String name } 所以这里一门课程可以有多个类别 现在我想找到所有的课程,它们的类别id是4 我尝试编写HQL查询: def courseList = Course.findAll("from Course as c where c.categories.id

我有课程领域

class Course {
    String name

    static hasMany = [categories: Category]
}
类别域类

class Category {
    String name 
}
所以这里一门课程可以有多个类别

现在我想找到所有的课程,它们的类别id是4

我尝试编写HQL查询:

def courseList = Course.findAll("from Course as c where c.categories.id in (4)")
这是一个错误


如何编写正确的HQL或正确的withCriteria查询?

您可以使用withCriteria查询:

Course.withCriteria { 
    categories { 
        eq 'id', new Long(4)
    }
}

这是一个打字错误,还是你真的想在同一边使用hasMany和belongsTo?只是看起来不太对劲。如果一门课程有许多类别,那么它就不能归属于一个类别。@uchamp:这是类型错误,更新了我的问题。。