在Oracle中,有一个运算符(+)
,用于在where结构中进行外连接,例如SELECT * FROM table t, other_table ot WHERE t.id = ot.tale_id(+)
,有没有类似的舒适方式,在HQL中做到这一点?
补充:或者还有其他方法可以将where条件设为外连接吗?
答案 0 :(得分:5)
有没有办法在HQL中指定left outer join
?
是的,HQL通过显式连接语法支持左外连接,并且语法与SQL相同(隐含的导航属性作为连接键):
from Cat as cat
left join cat.kittens as kitten
outer
是可选的,即left [outer] join
是否有left outer join
的缩写缩写,如Oracle' s(+)
不,AFAIK HQL文档没有引用简写left outer join
表示法,如果HQL遵循RDBMS中的趋势来删除专有连接语法,则根据@ a_horse_with_no_name的评论,{{3使用专有(+)语法,类似Oracle recommends against已被弃用。