休止状態の基準または名前付きクエリで「存在しない」クエリを作成するにはどうすればよいですか? このOracle SQLクエリと同じ結果を返す名前付きクエリが存在しないクエリを取得しようとしています:
select *
from SCHOOL a
where not exists (select 1
from STUDENT b
where B.SCHOOL_ID=a.id
and B.STATUS_ID not in (0,1,2,3,4))
を使用しsqlRestriction
ます。これは最終クエリに直接挿入されるため、データベースの列名を使用する必要があります。
School.createCriteria().list {
sqlRestriction(" not exists(select 1 from student s where s.school_id = this_.id and ...)")
}
HQL では:
select s from School s where not exists (
select st.id from Student st
where st.school = s
and st.statusId not in (0,1,2,3,4))