2012-07-29 124 views
0

我有3个实体:休眠关系左加入

class A { 
    @ManyToOne 
    B b1; 

    @ManyToOne 
    B b2; 
    ... 
} 

class B { 
... 
} 

class C { 
    @ManyToOne 
    B b; 
} 

我想留下“C”级的“B” HQL领域加入了“A”类“B2”字段。 所以HQL我woild喜欢什么:

SELECT a FROM A as a INNER JOIN a.b1 LEFT JOIN C as c on a.b2=c.b 

但我不能使用左侧加入在这种情况下,因为A类和C类没有连接。

任何人都可以帮助我吗? 谢谢

+1

鉴于HQL是无效的,我看不出有什么它应该做的事。你能解释一下例如数据,查询应该做什么? – 2012-07-29 09:54:01

回答

1

Afaik,如果实体没有关系,没有办法在HQL中执行外连接。 (从我的知识,直到休眠3.x中:P)

考虑在这种情况下编写SQL

+0

我放了一个manytomany连接到实体,延迟加载,然后,我可以在hql中使用它。 – Barnabas 2012-09-28 11:36:59