Аннотация @Formula не понимает "считать" - PullRequest
0 голосов
/ 22 октября 2018

У меня есть группа сущностей с вычисляемым свойством, которую я пытаюсь вычислить с помощью @ Formula.

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

public class Group {

...

@Formula("(select count (distinct (s.id)) + count(distinct(ses.id)) + count (distinct(u.id))
    from section s, session ses, user u, group_user gu
    where s.group_id = id and ses.group_id = id and gu.user_id = u.id and
          gu.group_id = id )")
    private int dependencies;
}

Но когда я выполняю findAll для группы, она выдает исключение:

ORA-00904: "GROUP0_"."COUNT": invalid identifier

И сгенерированныйSQL выглядит странно, вот так:

    Hibernate: select * from ( select distinct group0_.id as id1_8_, group0_.active as active2_8_, group0_.code as code3_8_, 
... 
(select group0_.count (distinct (s.id)) + count(distinct(ses.id)) + group0_.count (distinct(u.id)) from section s, session ses, user u, group_user gu where s.group_id = group0_.id and ses.group_id = group0_.id and gu.user_id = u.id and gu.group_id = group0_.id ) as formula1_ 
from group group0_ where 1=1 order by group0_.code asc ) where rownum <= ?

Как мне написать формулу, чтобы она заработала?

1 Ответ

0 голосов
/ 22 октября 2018

В конце концов это была только глупая проблема: разрыв между счетом и (если я напишу формулу:

@Formula("(select count(distinct (s.id)) + count(distinct(ses.id)) + count(distinct(u.id))
    from section s, session ses, user u, group_user gu
    where s.group_id = id and ses.group_id = id and gu.user_id = u.id and
          gu.group_id = id )")

Это работает !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...