Почему этот запрос НЕ работает
FROM WorkflowConfiguration
WHERE ((saReplacement IS NOT NULL) AND (:currentTime >= saReplacement.start) AND (saReplacement.end >= :currentTime)) OR
((hrmsAdminReplacement IS NOT NULL) AND (:currentTime >= hrmsAdminReplacement.start) AND (hrmsAdminReplacement.end >= :currentTime)) OR
((hrManagerReplacement IS NOT NULL) AND (:currentTime >= hrManagerReplacement.start) AND (hrManagerReplacement.end >= :currentTime)) OR
((payrollAdminReplacement IS NOT NULL) AND (:currentTime >= payrollAdminReplacement.start) AND (payrollAdminReplacement.end >= :currentTime))
Но этот делает
FROM WorkflowConfiguration
WHERE (saReplacement IN (from WorkflowReplacement as replacement WHERE (:currentTime >= replacement.start) AND (replacement.end >= :currentTime))) OR
(hrmsAdminReplacement IN (from WorkflowReplacement as replacement WHERE (:currentTime >= replacement.start) AND (replacement.end >= :currentTime))) OR
(hrManagerReplacement IN (from WorkflowReplacement as replacement WHERE (:currentTime >= replacement.start) AND (replacement.end >= :currentTime))) OR
(payrollAdminReplacement IN (from WorkflowReplacement as replacement WHERE (:currentTime >= replacement.start) AND (replacement.end >= :currentTime)))
Причиной, по которой он так долго является saReplacement, hrmsAdminReplacement, hrManagerReplacement и payrollAdminReplacement, могут быть значения null, поэтому я поставил проверку, чтобы убедиться, что они не равны null, поэтому остальная часть предложения не выполняется. Но по какой-то причине, когда я запускаю первый запрос, я не получаю никаких результатов, но если я запускаю второй (МНОГО МЕНЬШЕ ЭФФЕКТИВНОГО), я получаю все ожидаемые результаты. Это ошибка в HQL Hibernate или я схожу с ума?