Я только что унаследовал некоторый код, который использует ограничения HibernateEntityQuery
и EJBQL
.
Существует таблица / сущность "активность" с различными полями, и существующие ограничения EJBQL выглядят следующим образом:
private final String[] SEARCHRESTRRICTION = {
"activity.startDate >= #{activityList.startMonthBeginDate}",
"activity.startDate <= #{activityList.startMonthEndDate}",
"activity.cost >= #{activityList.minCost}"
}
В таблице также есть семь логических полей, представляющих дни (солнце / понедельник / вторник ...), которые применяются для данного вида деятельности. Теперь я хотел бы сделать запрос по дням - пользователь выберет дни, которые ему интересны, и отфильтрованные результаты должны включать действия, которые соответствуют любым дням, выбранным пользователем.
Например, если пользователь проверяет mon / wed / fri, запрос должен возвращать все действия, для которых mon = true ИЛИ wed = true ИЛИ fri = true.
Проблема с EJBQL
заключается в том, что он применяет ограничения, используя AND
, тогда как мне нужно сделать что-то вроде:
select * from activity where
(mon = true OR wed = true OR fri = true);
Есть ли способ указать ограничение в виде «вернуть результат, если ЛЮБОЕ из следующего верно»?