2013-08-31 42 views
6

这是我的HQL查询,但它不工作,并且抛出一个错误。如何在Hibernate查询语言中执行左连接?

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)

+0

请张贴一些代码。 –

+0

翻新和简化myquery.Pls告诉任何可能的答案 –

+0

你为什么要加入A.TABLEB,它应该只有TABLEB。 –

回答

10

在HQL可以用剩下的只是在主要实体链接属性JOIN:

样品

EntityA有一个对象类型EntityB的entityB这样你就可以

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

IF EntityA避风港” t entityB的财产,但是EntityB有一个财产entityA,你不能写这个:

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

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