oracle - 如何在 Hibernate 查询语言中执行左连接?

标签 oracle hibernate hql

这是我的 HQL 查询,但它不起作用并且抛出错误。

Hql查询:

SELECT 
    *
FROM 
    TABLEA A 
LEFT JOIN 
    A.TABLEB B 
WHERE 
    A.COLUMNNAME = B.COLUMNAME

它会导致此错误:

org.hibernate.QueryException:
This Query caught Exception. could not resolve property: of TABLEB:TABLEA.

如何解决这个问题?实际上我从多个表中检索了一个值。此查询不适用于 CreateQuery(strQuery) .

最佳答案

HQL 中,您只能将 LEFT JOIN 与主实体中的链接属性一起使用:

示例

EntityA 有一个 EntityB 类型的对象entityB,因此您可以

SELECT A FROM EntityA A LEFT JOIN A.entityB B WHERE ...

如果EntityA没有entityB属性,但EntityB有属性entityA,则不能这样写:

SELECT A FROM EntityA LEFT JOIN EntityB B WHERE B.entityA = A 

因为你有一个错误。这是一个尚未解决的 Hibernate 问题。

关于oracle - 如何在 Hibernate 查询语言中执行左连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18545390/

相关文章:

java - 如何从 Hibernate session 中分离所有对象

java - JPA 标准 API 函数转换或转换

java - HQL - 两个相同的查询 - 对象类型的差异

java - Hibernate HQL JOIN - 获取的关联不存在

mysql - 使用两个实体表进行批量更新的 Hibernate Hql

一个月中所有天数的 SQL 查询

java - 如何通过 JPA 将 Oracle Date 字段正确转换为 java.util.Date?

java - 无法将名称 [org.hibernate.spatial.dialect.postgis.PostgisDialect] 解析为策略 [org.hibernate.dialect.Dialect]

java - 是否可以模拟私有(private)静态最终字符串文字?

sql - ORA-30372 细粒度访问策略与物化 View 冲突