Подтвердить что ты не робот

Оператор JPQL возвращает логическое значение

Можно ли написать JPQL-запрос, например:

select count(*) > 0 from Scenario scen where scen.name = :name

который вернет истинные/ложные логические значения в зависимости от того, существует ли критерий заполнения объекта или нет?

Я хотел бы использовать запрос таким образом:

boolean exists = entityManager.createQuery(query,Boolean.class).setParameter("name",name).getSingleResult();

Запрос из моего примера просто не является синтаксически корректным (ошибка синтаксического анализа), но есть ли какой-либо правильный способ делать такие проверки в JPQL, которые возвращают логическое значение или это возможно только в Java-коде?

4b9b3361

Ответ 1

Да, возможно со следующими:

select case when (count(scen) > 0)  then true else false end  
from Scenario scen where scen.name = :name

Ответ 2

Как насчет:

select count(scen) > 0
from Scenario scen where scen.name = :name

Ответ 3

У меня была такая же проблема, затем я обновил свой спящий режим до 4.3.11.Final и теперь он работает.