在Oracle中,有一个运算符(+),用于在一个where构造中进行外连接,例如SELECT * FROM table t, other_table ot WHERE t.id = ot.tale_id(+),是否有类似的舒适方式,在HQL中执行此操作?
补充:或者有没有其他方法使where条件成为外连接?
有没有办法left outer join在HQL中指定?
是的,HQL通过显式连接语法支持左外连接,并且语法与SQL相同(隐含的导航属性作为连接键):
from Cat as cat
left join cat.kittens as kitten
Run Code Online (Sandbox Code Playgroud)
outer 是可选的,即 left [outer] join
是否有简写缩写left outer join,如Oracle的(+)
不,AFAIK HQL文档没有引用简写left outer join符号,如果HQL遵循RDBMS中的趋势来删除专有连接语法,根据@ a_horse_with_no_name的注释,Oracle建议不要使用专有(+)语法,类似地*=在MSSql Server中已被弃用.