Я пытаюсь сгенерировать HQL-запрос, включающий пользователя с пустыми коллекциями назначений (сопоставленных OneToMany):
SELECT u FROM User u JOIN u.appointments uas WHERE u.status = 1 AND (uas.time.end < :date OR size(uas) = 0)
Я пробую это несколькими способами (NOT EXIST ELEMENT(), IS NULL
)
см. также: Как проверить, является ли коллекция пустой в NHibernate (HQL)? (у меня это не работает)
но все еще не тот результат, который я хочу увидеть, или какая-то ошибка в HQL или SQL SERVER
Примечание:
работает запрос без JOIN:
"FROM User u WHERE u.status = 1 AND size(u.appointments) = 0"
решаемые
Другое JOIN решило проблему:
SELECT u FROM User u LEFT JOIN u.appointments pas1 LEFT JOIN pas1.slot t WHERE u.status = 1 AND t.end <= :date1 OR t.end IS NULL ORDER BY u.name asc