【发布时间】:2012-04-17 16:04:27
【问题描述】:
试图想出一种简洁的方法来创建带有 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)
【问题讨论】:
标签: hibernate grails criteria named-query