2009-06-10 47 views
34

可以說我有兩個表(A,B),如:沒有加入協會的HQL

A {id, a, c} 
B {id, b, c} 

我也有自己的實體。我想寫一個HQL,使結果集就會像(其中AC = BC):

(a1, b1, c1) 
(a2, b2, c2) 
(a3, b3, c3) 
... 

由於on條款不受休眠支持我堅持,我不知道如何編寫查詢。

回答

44

您必須使用交叉連接符號:

from A as table_a , B as table_b 
where table_a.c = table_b.c 

當然是沒有辦法實現這種方式外連接,所以你可能有一些麻煩,如果這是你的情況。

對於標準類似的情況是指:hibernate-criteria-joining-table-without-a-mapped-association,如果你想使外

+0

@ II-BHIMA我可以在此場景中使用左外連接 – dom 2017-01-25 14:57:27

1

加入可以使子查詢和管理或操作(我的作品)。 它使查詢更加複雜的和最差的高性能,但工作:-)

0

如果兩個表是通過外鍵相互關聯的,那麼你可以試試這個:

令:

A {ID (主鍵),a,c} B {id(外鍵),b,c}

在B類的pojo中定義了一個類型爲parent(A)的變量,其中包含setter和getter。通過這種方式。 讓它'AA'

select tbl_b.a,tbl_a.a,tbl_b.b,tbl_a.b,tbl_b.c,tbl_a.c from B tbl_b inner join tbl_b.AA tbl_b