Мне нужно создать критерии findAll
в Grails, но у меня есть 4 поля для поиска. Мне просто нужно искать по этим полям, если конкретная переменная не равна нулю.Как использовать findAll в Grails с инструкцией «if», чтобы проверить, было ли поле нулевым до поиска
Например, если все переменные не нулевой, я буду искать по всем полям, как следующее:
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, чтобы проверить их ... Мне нужно, если каждый сценарий ... Как:
Если job
не является нулевым и company
не является нулевым, один findAll. Если company
не имеет значения null и regularTime не равно null, другой findAll
.