0
试图想出一个简洁的方式来使用NOT IN子句创建命名查询。限制类似乎没有“不在”构造。任何人都知道这样做的好方法?针对NOT IN的Grails命名查询
解决方案:
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'must被引用,因为它保留。
这些命名查询可以使用这样的:
Request.activeOnly.open.topLevel.list(params)
谢谢你的回复。这可能工作,但不是一个命名查询。命名查询使用标准API来创建和缓存预准备语句。 – dbrin 2012-04-03 23:23:46
添加标准dsl。 – pablomolnar 2012-04-03 23:41:16
谢谢你的时间。更正了语法。 inList是为约束保留的,但引用的'in'起作用。 – dbrin 2012-04-03 23:57:12