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

kar*_*A.M 7 oracle hibernate hql

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

Hql查询:

SELECT 
    *
FROM 
    TABLEA A 
LEFT JOIN 
    A.TABLEB B 
WHERE 
    A.COLUMNNAME = B.COLUMNAME
Run Code Online (Sandbox Code Playgroud)

它会导致此错误:

org.hibernate.QueryException:
This Query caught Exception. could not resolve property: of TABLEB:TABLEA.
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?实际上我从多个表中检索了一个值.此查询不起作用CreateQuery(strQuery).

Joe*_*ras 12

在HQL中,您只能将LEFT JOIN用于主实体中的链接属性:

样品

EntityA有一个EntityB类型的对象实体B,所以你可以

SELECT A FROM EntityA A LEFT JOIN A.entityB B WHERE ...
Run Code Online (Sandbox Code Playgroud)

如果EntityA没有entityB属性但是EntityB有一个属性entityA,你不能这样写:

SELECT A FROM EntityA LEFT JOIN EntityB B WHERE B.entityA = A 
Run Code Online (Sandbox Code Playgroud)

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