当前位置: 首页 > 面试题库 >

HQL查询以检查集合的大小是否为0或为空

邓鸿信
2023-03-14
问题内容

我尝试生成一个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

但仍然不是我想要查看的结果或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语法):

SELECT u FROM User u WHERE u.status = 1 AND u.appointments IS EMPTY

如果没有,请显示生成的SQL。

参考文献

  • Hibernate Core参考指南
    • 14.10。表达方式
  • JPA 1.0规范


 类似资料:
  • 那么如何在HQL中检查集合是否为空?简单的例子: 如果标题是一个变量,我可以 但是如果标题是一个列表/集合呢? 如果标题是列表,这将不起作用。经过激烈的搜索,我尝试了是空的、大小的和存在的函数,我还尝试了(: title)是空选项。 以上都不起作用。我知道有一种硬编码方式,根据标题列表的状态编写不同的查询,如果为空,则一个查询,如果为空,则另一个查询。但这将产生许多类似的HQL查询,只需稍作修改。

  • 问题内容: 有没有一种方法可以检查nodestore的firestore中是否存在子集合? 目前,我正在使用文档,但是我需要检查文档中是否存在子类以便写入一些数据。 问题答案: 就在这里。您可以使用docs.length来知道子集合是否存在。 我制作了一个样本来指导您,希望对您有所帮助。

  • 问题内容: 我要实现以下功能: 如何检查向量元素类型? 请注意, 向量可能为空,因此我无法检查第一个元素是“ instanceof”整数还是String … 编辑: 好吧,我脑子里有个念头,我不知道它是否会起作用 我可以按以下方式实现checkType函数: 是否可以检查T是否为整数?! 提前致谢 问题答案: *由于 类型擦除, *泛型类型参数 在运行时不可恢复(某些特殊情况除外)。这意味着在运行

  • 我需要在JPA查询中传递这个参数。 我如何才能实现这一点,而不是为IS NULL&IS NOT NULL创建2个单独的查询。

  • 我有一个具有如下结构的集合对象: 我该怎么办?非常感谢,很抱歉我的英语不好!

  • 问题内容: 我是Node.js和Heroku的新手,我构建了一个使用node.js并从mongodb实例检索一些数据的小应用程序。我设置了整个程序,但是我的问题是我认为mongodb的语法很简单。 我需要在启动应用程序时知道我的收藏夹中是否包含任何东西,如果没有,则不进行初始化。我尝试调用collection.count(),但返回未定义。 我尝试这样做 任何帮助表示赞赏。 问题答案: 任何访问数