我刚刚继承了一些使用HibernateEntityQuery
和EJBQL
限制的代码。
有一个包含各种字段的“活动”表/实体,现有的 EJBQL 限制如下所示:
private final String[] SEARCHRESTRRICTION = {
"activity.startDate >= #{activityList.startMonthBeginDate}",
"activity.startDate <= #{activityList.startMonthEndDate}",
"activity.cost >= #{activityList.minCost}"
}
该表还有七个布尔字段,代表适用于给定活动的天数(太阳/星期一/星期二...)。现在我想按天查询——用户将选择他们感兴趣的日期,过滤后的结果应该包括与用户选择的任何日期相匹配的活动。
例如,如果用户检查 mon/wed/fri,则查询应返回 mon = true OR wed = true OR fri = true 的所有活动。
问题EJBQL
在于它使用 应用限制AND
,而我需要执行以下操作:
select * from activity where
(mon = true OR wed = true OR fri = true);
有没有办法以“如果以下任何一项为真,则返回结果”的形式指定限制?