Итак, у меня есть SQL-запрос,
<named-query name="NQ::job_exists">
<query>
select 0 from dual where exists (select * from job_queue);
</query>
</named-query>
Который я планирую использовать так:
Query q = em.createNamedQuery("NQ::job_exists");
List<Integer> results = q.getResultList();
boolean exists = !results.isEmpty();
return exists;
Однако я не очень силен в SQL / JPA, и мне было интересно, есть ли лучший способ сделать это (или способы улучшить его). Должен ли я, например, написать (выбрать jq.id из job_queue jq) вместо использования звездочки ??
РЕДАКТИРОВАТЬ: этот вызов очень критичен для производительности в нашем приложении.
РЕДАКТИРОВАТЬ: провел некоторое тестирование производительности, и, хотя различия были почти незначительными, я наконец решил пойти с:
select distinct null
from dual
where exists (
select null from job_queue
);