我有一个 oracle 数据库,其中存储的仓库仅在一周中的某一天开放,例如“星期一”或“星期四”。
现在我想选择给定一周的所有有效仓库。请求的周作为日期传递。一致认为该日期将始终是某个星期日,例如 2011 年 5 月 29 日。这导致以下查询:
from Warehouse w
where (:requested_week_date + w.day_open) between w.valid_start and w.valid_end
问题是这个查询会给出一个类转换异常:
java.lang.ClassCastException: java.util.Date incompatible with java.lang.Integer
问题是在水下 Oracle 能够将整数添加到日期。Oracle 会将整数视为添加到日期的天数。我的问题是是否有可能让它在 HQL中工作。
我知道你也可以在 hibernate 中定义本地 sql 查询(已经尝试过这个并且效果很好),但这不是我正在寻找的答案。鉴于有一个,我只是在寻找一个 HQL 解决方案。