HQL 正在过滤掉空字段

HQL is filtering out fields with null

在一个 table 我有:

oid code_name
1 1
2 NULL
3 2
4 3

代号是第二个外键table:

oid name
1 BANANA
2 APPLE
3 ORANGE

我的 HQL 是:

FROM table1 o ORDER BY o.code_name.name

但出于某种原因,我在排序时得到的结果是 table 没有空行。

oid code_name name
3 2 APPLE
1 1 BANANA
4 3 ORANGE

当你输入ORDER BY o.code_name.name时,意味着你必须加入另一个table。似乎 Hibernate 将此 HQL 转换为普通的 INNER JOIN SQL.

您必须手动输入 LEFT JOIN

SELECT t1 FROM table1 t1 
LEFT JOIN t1.code_name t2 
ORDER BY t2.name