NOT IN 句を使用して名前付きクエリを作成する簡潔な方法を考え出そうとしています。制限クラスには「not in」構造がないようです。これを行う良い方法を知っている人はいますか?
解決策:
static namedQueries = {
activeOnly {
eq 'active', true
}
open {
ne 'state', this.STATE_COMPLETED
}
my { user ->
or {
eq 'createdBy', user
eq 'reviewer', user
eq 'assignee', user
eq 'requestedFor', user
ilike 'notifyList', "%$user%"
}
}
topLevel {
not {'in'('type', [RequestType.Part])}
}
}
注: 「in」という単語は予約語であるため、引用符で囲む必要があります。
これらの名前付きクエリは、次のように使用できます。
Request.activeOnly.open.topLevel.list(params)