Hibernate Criteria ベースのクエリでは、サブセレクトに基準を追加できますか?
具体的には、開発者は次のコードを持っています。
criteria.setFetchMode("user", FetchMode.JOIN).add(
Restrictions.eq("company.id", companyId));
彼らの意図は次のようなものです。
select a.* from tableA a where a.user in
(select b.user from tableB b where b.companyId = 'companyId')
IE 'このテーブルから、companyId = 'companyId' のユーザーのセットに含まれるすべてのレコードを選択します (詳細は別のテーブルを参照)。
ただし、上記の Criteria ベースのステートメントは意図したとおりに機能しません。setFetchMode は呼び出されたのと同じ基準を返し、add ステートメントは company.id = companyId 句を全体的な Criteria (つまり tableA) に追加していると思います。
この 'add' ステートメントは、fetchmode が後で作用する Criteria ではなく、FetchMode (つまり、サブセレクト) に適用されることを意味していました。
休止状態の基準ステートメントを経験していないので、これが可能かどうかわかりませんか?