То, чего вы хотите достичь, - это что-то вроде этого в SQL :
select
act.*,
(select count(*) from Reports rep where rep.id = act.reportId)
from Activity act
Было бы проще всего использовать size()
, но, к сожалению, не работает :
select act, size(act.Reports)
from Activity act
Согласно документам, size
недоступно в предложении select.Интересно, что на самом деле он работает с .size
, но не с size()
, что на самом деле должно быть эквивалентно:
select act, act.Reports.size
from Activity act
Возможно, стоит запрос функции, чтобы также сделать функциюСинтаксис (size()
) работает.
Официально работающая группа по синтаксису громоздка, потому что вам нужно сгруппировать все сопоставленные свойства Activity:
select act, count(*)
from Activity act left join act.Reports rep
group by act.id, act.Name, act.Whatever
ИтакЯ наконец попробовал этот вариант, и он, кажется, именно то, что вам нужно :
select act, (select count(*) from act.Reports)
from Activity act