私は、「月曜日」または「木曜日」など、週に 1 日だけ開いている倉庫が格納されている 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 は、整数を日付に追加する日数として扱います。私の質問は、これをHQLで動作させることが可能かどうかです。
休止状態でネイティブ SQL クエリを定義することもできます (既にこれを試してみましたが、これはうまくいきます) が、それは私が探している答えではありません。HQL ソリューションがあることを考えると、HQL ソリューションを探しているだけです。