试图想出一种简洁的方法来创建带有 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)