gpt4 book ai didi

grails - 在grails中创建条件时,isNull不会获取空记录

转载 作者:行者123 更新时间:2023-12-02 14:42:19 26 4
gpt4 key购买 nike

我正在使用createCriteria构建搜索结果列表。 inList工作正常,但是我无法使可选的isNull正常工作。在数据库中,我可以看到在列中有空值的记录,但是没有被选中。 AdoptionAgreement域是一个枚举。 isEmpty不起作用,对此我遇到了grails异常。

   def adoptionAgreementCriteria = {
if (params.adoptionAgreement) {
inList('adoptionAgreement', params.list('adoptionAgreement').collect { AdoptionAgreement.valueOf(it)} )
or {
isNull('adoptionAgreement')
}
}
}

这段代码看起来不对吗?

最佳答案

在闭包中传递给or的东西只有一件事看起来不对。

使用or时,需要在花括号中包括所有术语:

or {
option1
option2
}

这意味着:option1或option2。

The first example in the documentation有一个 or:
def c = Account.createCriteria()
def results = c {
between("balance", 500, 1000)
eq("branch", "London")
or {
like("holderFirstName", "Fred%")
like("holderFirstName", "Barney%")
}
maxResults(10)
order("holderLastName", "desc")
}

这将检索余额在给定范围内且分支是指定分支的行(持有人名称为“Fred”或持有人名称为“Barney”)。

关于grails - 在grails中创建条件时,isNull不会获取空记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28287041/

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