Может ли быть условие if внутри Hibernate Criteria Create?
Я использую HibernateCriteriaBuilder
API для написания моих критериев запросов. Я хочу знать, если внутри Criteria
мы можем иметь условную логику, такую как if
заявление?
Например:
OnemonthList=it.createCriteria().list {
if (res_id!='all'){
eq('graresource',resourceInstance)
}
between('currentdate', fromDate, toDate)
projections {
trans {
countDistinct('id')
}
groupProperty('currentdate')
}
}
Это действительно?
1 ответ
Решение
Да, вы можете использовать любой вид условной или циклической логики внутри критериев DSL. Ваш пример будет работать. Использование циклов может быть невероятно полезным, например:
Domain.createCriteria().list {
params.mapOfConditions.each {
eq it.key, it.val
}
}
будет динамически добавлять eq
за каждую запись на карте, которая у вас есть.