GORM list () для возврата только объектов суперкласса - PullRequest
0 голосов
/ 16 декабря 2009

У меня есть простая иерархия объектов, и я хочу запросить каждый из объектов, используя list (). Проблема в том, что из-за полиморфизма Task.list () возвращает оба экземпляра типа Task и ComplexTask.

class Task {
}

class ComplexTask extends Task {
}

Я понимаю, что могу решить свою проблему, имея общий абстрактный суперкласс или отфильтровав результаты по возвращаемому типу, но мне было интересно, есть ли способ использовать динамические искатели и получать только экземпляры суперкласса.

Ответы [ 2 ]

2 голосов
/ 16 декабря 2009

Используя стратегию наследования таблицы на иерархию по умолчанию, вы можете сделать что-то вроде этого:

Task.findAll("from Task as t where t.class = 'Task'")
0 голосов
/ 16 декабря 2009

Я думаю, что это связано с отложенной загрузкой, потому что реальный экземпляр загружается не полностью не только для отношений, но и для наследования.

...