gpt4 book ai didi

grails - 如何在Grails中使用 “if”语句使用findAll在搜索之前验证字段是否为空

转载 作者:行者123 更新时间:2023-12-02 14:50:41 28 4
gpt4 key购买 nike

我需要在Grails中创建一个findAll条件,但是我有4个要搜索的字段。如果特定变量不为空,我只需要按这些字段进行搜索。

例如,如果所有变量都不为null,则将按如下所示搜索所有字段:

list = MyObject.findAll {
'in'("job", jobList)
'in'("businessUnit", businessUnitList)
'in'("company", companyList)
eq("regularTime", params.regularTime)
}

我想做的是这样的:
regularTimeList = RegularTime.findAll {
if(params.job != null) 'in'("job", jobList)
if(params.businessUnit != null) 'in'("businessUnit", businessUnitList)
if(params.company != null) 'in'("company", companyList)
if(params.regularTime != null) eq("regularTime", params.domainClassSearchFilters.regularTime)
}

它无法正常工作,所以我想知道是否有办法做到这一点,因为现在我不得不创建大量的ifs来验证它们...对于每种情况我都需要一个if ...就像:

如果 job不为null,并且 company不为null,则使用findAll。如果 company不为null,regularTime不为null,则另一个 findAll

最佳答案

您可以执行以下操作:

regularTimeList = RegularTime.findAll {  
if (params.job != null) params.job in jobList
if (params.businessUnit != null) params.businessUnit in businessUnitList
if (params.company != null) params.company in companyList
if (params.regularTime != null) regularTime == params.domainClass
}

关于grails - 如何在Grails中使用 “if”语句使用findAll在搜索之前验证字段是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31388850/

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