Как запросить коллекцию унаследованного объекта для определенного типа объекта в Grails? - PullRequest
3 голосов
/ 25 мая 2010

У меня есть эта модель:

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

class QuestionComponent{
  static belongsTo = Question
}

class QuestionComponentStatus extends QuestionComponent{

}
class QuestionComponentOther extends QuestionComponent{

}

Я хочу получить только QuestionComponentStatus из набора компонентов:

questionInstance.components.?

Большое спасибо

1 Ответ

1 голос
/ 25 мая 2010

Вы можете просто выполнить запрос непосредственно в подклассе, чтобы избежать полиморфных результатов. При условии, что ваши отношения «один ко многим» двунаправлены (т.е. static belongsTo = [question: Question]), вы можете сделать что-то вроде:

QuestionComponentStatus.findAllByQuestion(q)

или в HQL:

QuestionComponentStatus.findAll("FROM QuestionComponentStatus WHERE question = :question", [question: q])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...