1

休止状態の基準または名前付きクエリで「存在しない」クエリを作成するにはどうすればよいですか? この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))
4

2 に答える 2

2

を使用しsqlRestrictionます。これは最終クエリに直接挿入されるため、データベースの列名を使用する必要があります。

School.createCriteria().list {
  sqlRestriction(" not exists(select 1 from student s where s.school_id = this_.id and ...)")
}
于 2013-08-15T14:04:48.140 に答える
2

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))
于 2013-08-15T14:08:44.260 に答える