sql - Oracle 左外连接语法速记符号 (+) 在 HQL 中可用吗?

标签 sql oracle hql

在 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

Source: HQL Query Reference

是否有左外连接的简写缩写,例如 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/

相关文章:

mysql - 错误 1054 (42S22) : Unknown column 'year' in 'where clause'

java - 从 sql 创建 Hibernate Criteria 语句

oracle - 如何在 Oracle 中开发一个 after serverror 触发器?

oracle - 位图索引全扫描是否在Oracle中进行排序?

java - Hibernate:使用 LocalDateTime 查询范围

mysql - 简单的 HQL/sql 查询..需要帮助吗?

sql - 使用 Postgres 在 SQL 中进行复杂排序

sql - 在 Netezza 中使用科学计数法

java - 服务器启动期间,index::error 处缺少 IN 或 OUT 参数?

java - 多对多单向关系的HQL查询