休止状態の基準を使用して、次のようなクエリを作成したいと思います。
SELECT .
table1
"any_field" FROM
table1
内部結合table2
. = . または。= table2.field1table1
field1
table2
field1
table1
field2
どこ .....
主な問題は、内部結合に「OR」条件を追加できないことです。適用するすべての制限とものは常に「AND」になります。
休止状態の基準を使用して、次のようなクエリを作成したいと思います。
SELECT .
table1
"any_field" FROM
table1
内部結合table2
. = . または。= table2.field1table1
field1
table2
field1
table1
field2
どこ .....
主な問題は、内部結合に「OR」条件を追加できないことです。適用するすべての制限とものは常に「AND」になります。
確かに効率的ではありません:
session.createCriteria(T2.class, "t2")
.add(Restriction.or(
Subquery.exists(DetachedCriteria.for(T1.class).add(Restrictions.eqProperty("field1", "t2.field1")),
Subquery.exists(DetachedCriteria.for(T1.class).add(Restrictions.eqProperty("field2", "t2.field1")))
.list();