次のような2つのテーブル(A、B)があるとしましょう:
A {id, a, c}
B {id, b, c}
私も彼らの実体を持っています。結果セットが次のようになるように HQL を書きたい (Ac = Bc):
(a1, b1, c1)
(a2, b2, c2)
(a3, b3, c3)
...
句は休止状態でサポートされていないためon、私は動けなくなり、クエリの書き方がわかりません。
クロス結合表記を使用する必要があります。
from A as table_a , B as table_b
where table_a.c = table_b.c
もちろん、この方法で外部結合を実装する方法はないため、その場合は問題が発生する可能性があります。
基準を使用した類似のケースについては、hibernate-criteria-joining-table-without-a-mapped-association を参照してください。
両方のテーブルが外部キーを介して互いに関連している場合は、これを試すことができます:
させて:
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