我有一个where子句,其条件如下:
a.system(+) = 'Test'
我正在尝试使用join将其转换为Hibernate
left join a where a.system = 'Test' or a.system = null
但是,此转换仅在a. system='Test'或a.system=null不再是外连接时返回数据。
对此有正确的解决办法吗?
使用左连接,您只需放置连接条件。在下面的示例中,您将从表a中获取具有表b匹配字段的所有行,当b中没有匹配行时为null。
select *
from a left join b on a.field = b.field and b.system = 'Test'
如果您发布完整的查询会更清楚。
为了进一步解释,您总是连接两个表
或结果集
或充当表的“视图”。您在此处将“TEST”作为常量。ANSI中的等效查询如下所示:
从table_aa
LEFT JOINtable_bb
ON a.列=b.列
AND b. system='TEST'