Hibernate HQL中的有效存在性查询
我有一个类Hibernate HQL中的有效存在性查询,hibernate,hql,Hibernate,Hql,我有一个类Employee,有三个类成员:id、isVisible、sectionId 我想在HQL中查询: 如果某个部门有任何员工 如果是-该部分内的所有员工是否都隐藏 现在我正在做一些类似的事情: SELECT count(e.id), count(nullif(e.isVisible,0)) from Employee e where sectionId = :sectionId 但是计数效率不高,因为它需要一个完整的表扫描,而我不需要计数的数字 我可以做两个查询 通过
Employee
,有三个类成员:id、isVisible、sectionId
我想在HQL中查询:
SELECT count(e.id), count(nullif(e.isVisible,0))
from Employee e where sectionId = :sectionId
但是计数效率不高,因为它需要一个完整的表扫描,而我不需要计数的数字
我可以做两个查询
通过运行简单的select并将结果数限制为单个结果来查询员工部分:
SELECT e.id from Employee e where sectionId = :sectionId
如果返回结果,则在可见部分中查询第一个员工:
SELECT e.id from Employee e where visible = 1 and sectionId = :sectionId
我的问题是:我可以在一个查询中同时执行这两个检查吗?因为您只想从每个查询中获取一行,所以可以将它们完全外部联接,以获取包含两列的单行。您需要将Employee别名为E1和E2。因为您只想从每个查询中获取一行,所以可以将它们完全外部联接,以获取包含两列的单行。您需要将员工别名为E1和E2。如果条件为:1,您将如何区分结果。对,错2。false,false这两种情况都符合您的期望吗?如果条件为:1,您将如何区分结果。对,错2。false,false两者都符合你的期望吗?