我有两个表A和B。B有一个指向A.id的外键(假设它被称为ForeignId)。我正在尝试编写等效于以下内容的HQL:
SELECT A.id
FROM A a LEFT JOIN B b ON a.id = b.foreignId
WHERE 1=1
如果我在指向表B的表A中有键,则写入HQL并不是问题,不幸的是,此案例提供了我在网上看到的所有示例。我无法编写选择B.foreignId的查询,因为主要用例之一是B可能为null。我需要提供的SQL的HQL。
很遗憾,我的问题被以下Hibernate HQL Query with outer join标记为重复项。正如我所解释的,从A到B以及从B到A的指针是完全不同的情况。给定的链接仅在A具有指向B的指针的情况下才提供解决方案我的问题。它还在回答以下SQL / HQL查询: SQL:
SELECT b.foreignId
FROM B b LEFT JOIN A a ON a.id = b.foreignId
WHERE 1=1
HQL:
select b.foreignId from B b
left join b.foreignId a