【发布时间】:2011-04-15 05:07:14
【问题描述】:
我尝试生成一个 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)
另请参阅:How to check if the collection is empty in 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
【问题讨论】: