次のような2つのテーブル(A、B)があるとします。
A {id, a, c}
B {id, b, c}
私にも彼らの実体があります。結果セットが次のようになるようにHQLを書きたい(A.c = B.c):
(a1, b1, c1)
(a2, b2, c2)
(a3, b3, c3)
...
on
句はhibernateではサポートされていないため、行き詰まり、クエリの記述方法がわかりません。
クロス結合表記を使用する必要があります。
from A as table_a , B as table_b
where table_a.c = table_b.c
もちろん、この方法で外部結合を実装する方法はありません。その場合、問題が発生する可能性があります。
条件付きの類似のケースについては、以下を参照してください。 hibernate-criteria-joining-table-without-a-mapped-association
外部結合を作成したい場合は、サブクエリを作成し、OR操作(これは私にとっては機能します)を管理できます。これにより、クエリがより複雑で最悪のパフォーマンスになりますが、機能します:-)
両方のテーブルが外部キーを介して互いに関連している場合は、これを試すことができます:
みましょう:
A {id(主キー)、a、c} B {id(外部キー)、b、c}
この方法でクエリを記述できるように、Bクラスのpojo.afterでセッターおよびゲッターを使用して、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