在 Oracle 中,有运算符 (+)
,用于在 where 构造中进行外连接,例如SELECT * FROM table t, other_table ot WHERE t.id = ot.tale_id(+)
,是否有类似的舒适方法可以在 HQL 中执行此操作?
补充:或者还有其他方法可以使 where 条件成为外连接吗?
最佳答案
有没有办法在 HQL 中指定左外连接
?
是的,HQL 确实通过显式连接语法支持左外连接,并且该语法与 SQL 相同(使用隐含的导航属性作为连接键):
from Cat as cat
left join cat.kittens as kitten
outer
是可选的,即left [outer] join
是否有左外连接
的简写缩写,例如 Oracle 的 (+)
不,据我所知,HQL 文档没有引用简写的左外连接
符号,并且如果 HQL 遵循 RDBMS 中删除专有连接语法的趋势,按照 @a_horse_with_no_name 的评论,Oracle recommends against 使用专有 (+) 语法,类似的 *= in MSSql Server 已被弃用。
关于sql - Oracle 左外连接语法速记符号 (+) 在 HQL 中可用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27106058/