41

次のような2つのテーブル(A、B)があるとしましょう:

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

私も彼らの実体を持っています。結果セットが次のようになるように HQL を書きたい (Ac = Bc):

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

句は休止状態でサポートされていないためon、私は動けなくなり、クエリの書き方がわかりません。

4

4 に答える 4

53

クロス結合表記を使用する必要があります。

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

もちろん、この方法で外部結合を実装する方法はないため、その場合は問題が発生する可能性があります。

基準を使用した類似のケースについては、hibernate-criteria-joining-table-without-a-mapped-association を参照してください。

于 2009-06-10T07:26:07.627 に答える
0

両方のテーブルが外部キーを介して互いに関連している場合は、これを試すことができます:

させて:

A {id(主キー), a, c} B {id(外部キー), b, c}

Bクラスのpojo.afterで、setterとgetterでparent(A)型の変数を定義すると、このようにクエリが書けます。「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
于 2015-12-22T09:45:13.633 に答える