pochodzi od this question, jest to możliwe do wykorzystania HQL lub kryteria dla następujących instrukcji SQL:case w HQL lub kryteria
SELECT
e.type,
count(e),
count(d),
count (case when gender = 'male' then 1 else NULL end) AS NumberOfMaleEmployees
from Department d
JOIN d.employees e
WHERE e.dead = 'maybe'
GROUP BY e.type
Chociaż Google pojawia się z kilku hitów tego stanu HQL obsługuje instrukcje Case, Hibernate 3.6.6 nie z
QuerySyntaxException: nieoczekiwany znak: CASE
gdy tworzę powyżej zapytania w instancji EntityManager.
Ile jest złego pomysłu, aby utworzyć kolejne zapytanie dla każdego typu e.type, aby ręcznie określić liczbę samców, np. dla każdego typu e.type
SELECT
count(e),
from Department d
JOIN d.employees e
WHERE e.dead = 'maybe', e.type = ugly
Ponieważ może istnieć kilka typów, jest to potencjalnie powolne. Chciałbym, żeby baza danych wykonała dla mnie pracę.
Dzięki, to właśnie uratowało mnie przed szaleństwem. Oto [zgłoszenie błędu] (https://hibernate.onjira.com/browse/HHH-4150). Jest stary, ale wciąż nierozwiązany ... –
Czy możemy to zrobić za pomocą zapytania Kryteria? –
Działa również z API Criteria. – gillesB