gpt4 book ai didi

hibernate - Grails命名查询NOT IN

转载 作者:行者123 更新时间:2023-12-02 15:36:15 27 4
gpt4 key购买 nike

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

最佳答案

也许像这样冒昧:

Book.findAll("from Book b where b.author not in (?)", ['Borges', 'Sabato', 'Cortazar'])

或使用标准
Book.withCriteria {
not {
'in'('author', ['Borges', 'Sabato', 'Cortazar'])
}
}

http://grails.org/doc/1.3.x/ref/Domain%20Classes/createCriteria.html-“in”标准方法的文档也具有链接的“not”方法。

关于hibernate - Grails命名查询NOT IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10002796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com