2012-07-29 105 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