如何在grails中查询特定对象类型的继承对象集合?

时间:2010-05-25 10:28:45

标签: java grails

我有一个这个模型:

class Question{
  Set components
  static hasMany = [components: QuestionComponent]
}

class QuestionComponent{
  static belongsTo = Question
}

class QuestionComponentStatus extends QuestionComponent{

}
class QuestionComponentOther extends QuestionComponent{

}

我想从Set组件中只获取QuestionComponentStatus:

questionInstance.components。 ?

非常感谢

1 个答案:

答案 0 :(得分:1)

您可以直接在子类上进行查询,以避免出现多态结果。如果您的一对多关系是双向的(即static belongsTo = [question: Question]),您可以执行以下操作:

QuestionComponentStatus.findAllByQuestion(q)

或在HQL中:

QuestionComponentStatus.findAll("FROM QuestionComponentStatus WHERE question = :question", [question: q])