Sql Oracle左外部联接语法速记符号(+)在HQL中可用?

Sql Oracle左外部联接语法速记符号(+)在HQL中可用?,sql,oracle,hql,Sql,Oracle,Hql,在Oracle中,有运算符+,用于在where构造中进行外部联接,例如从表t中选择*,从表t中选择其他表ot,其中t.id=ot.tale\U id+,在HQL中有类似的舒适方式吗 补充:或者有没有其他方法使where条件成为外部连接 有没有办法在HQL中指定左外连接 是的,HQL确实通过显式联接语法支持左外部联接,并且该语法与SQL相同,以隐含导航属性作为联接键: from Cat as cat left join cat.kittens as kitten 外部是可选的,即左[外部

在Oracle中,有运算符+,用于在where构造中进行外部联接,例如从表t中选择*,从表t中选择其他表ot,其中t.id=ot.tale\U id+,在HQL中有类似的舒适方式吗

补充:或者有没有其他方法使where条件成为外部连接

有没有办法在HQL中指定左外连接

是的,HQL确实通过显式联接语法支持左外部联接,并且该语法与SQL相同,以隐含导航属性作为联接键:

from Cat as cat
    left join cat.kittens as kitten
外部是可选的,即左[外部]连接

有没有像Oracle那样的左外联接的缩写+


不,假设HQL文档没有提到简写的左外连接符号,如果HQL遵循RDBMS中的趋势删除专有连接语法,按照@a_horse_with_No_name的注释,使用专有+语法,类似地,HQL也被弃用了。

我确信HQL有办法指定一个外部连接,我根本不知道HQL。无论如何,您不应该在Oracle中使用+。甚至Oracle也建议在from子句中使用left join。感谢您的快速回复,但这并不能回答我的问题。hql中有有线左连接,但我根本不想使用它们。。。我只知道hql如何处理隐式连接,但我找不到一种有效的方法来处理显式连接,如。。。左joinYou:如何在HQL中使用+运算符。Me:这是一个外部连接,我相信HQL支持,你:HQL支持外部连接,但我不想使用它们,Me:不再理解这个问题。你说你不知道HQL是如何工作的,我真的很感谢你的帮助,但是隐式连接在HQL中很容易工作,但我没有找到有效的方法来进行显式连接。但是现在我们失去了对我的问题的关注…谢谢,我已经红色了Hibernate手册,但这是一个隐式连接。我想要显式联接。左联接语法的使用是显式联接。从结果SQL语句中的docs隐式连接结果中,即如果您只是隐式导航cat.kittens,它将始终是一个内部连接。@Andy_Lima重新阅读了该文档。如果您在查询中键入left join,那么它显然是一个显式连接。隐式连接类似于where person.address.city=?,在查询中没有显式连接,但它仍然在person和address之间进行连接。我知道我可以显式连接。。。但这不符合主题。问题是是否有类似SQL+的方法。不是我如何加入explicit的。@Andy_Lima并重新阅读您之前的评论。我引用:这是一个隐式连接。不,不是。我想加入显式,这正是StuartLC的答案。我们怎么知道当你说这是隐式连接时,你的意思是这是显式连接,当你说我想显式连接时,你的意思是我不想使用显式连接?