我尝试生成一个HQL查询,其中包括带有空Appoinment集合(由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(), ISNULL)
NOT EXIST ELEMENT(), ISNULL
但仍然不是我想要查看的结果或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
使用IS EMPTY应该可以(我希望使用JPQL语法):
IS EMPTY
SELECT u FROM User u WHERE u.status = 1 AND u.appointments IS EMPTY
如果没有,请显示生成的SQL。