Как сказал OverZealous, вы можете позвонить на group.positions.size()
, но это будет очень дорого для большого количества Position
с, так как он загрузит их все в память, чтобы просто посчитать их, а затем выбросить.
Если у вашего Position
класса есть обратная ссылка на принадлежащий ему класс Group
, например, static belongsTo = [group: Group]
, тогда вы можете использовать этот легкий запрос:
def group = ...
int positionCount = Position.countByGroup(group)
Если у вас нет двунаправленных отношений, вы можете получить счет через HQL:
def group = ...
int positionCount = Group.executeQuery(
'select count(pos) from Group g ' +
'inner join g.positions pos where g=:g', [g: group])[0]