HibernateEntityQuery and EJBQL restrictions



我刚刚继承了一些使用HibernateEntityQueryEJBQL限制的代码。

有一个带有各种字段的"活动"表/实体,现有的EJBQL限制如下:

private final String[] SEARCHRESTRRICTION = { 
    "activity.startDate >= #{activityList.startMonthBeginDate}",
    "activity.startDate <= #{activityList.startMonthEndDate}",
    "activity.cost >= #{activityList.minCost}"
}

表还有7个布尔字段,表示适用于给定活动的日期(sun/mon/tue…)。现在我想按天查询-用户将选择他们感兴趣的日子,过滤的结果应该包括与任何用户选择的日子匹配的活动。

例如,如果用户查询mon/wed/fri,查询应该返回mon = true或wed = true或fri = true的所有活动。

EJBQL的问题是它使用AND应用限制,而我需要做一些类似的事情:

select * from activity where
      (mon = true OR wed = true OR fri = true);

是否有一种方法以"如果以下任何一个为真,返回结果"的形式指定限制?

解决方案是将初始过滤移动到setEjbql()调用,该调用在setRestrictionExpressionStrings()之前应用。

相关内容

  • 没有找到相关文章

最新更新