2
私は、倉庫が格納されている倉庫が格納されています。 'monday'または 'thursday'。 HQLでDate型の名前付きパラメータに日を追加する
私は、特定の週のための有効なすべての倉庫を選択します。要求された週は日付として渡されます。この日は常に日曜日になることが合意されています。 5月29日、2011これは、次のクエリにつながる:
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で動作させることが可能かどうかです。
あなたはまた、ハイバーネイトでネイティブSQLクエリを定義することができます(すでにこれを試してみましたが、これはうまくいきます)。しかし、それは私が探している答えではありません。私はHQLソリューションを探しています。
ソリューションは、あなたが使用しているオラクルの方言をサブクラス化し、適切なSQLの翻訳を行うだろう追加add_days
機能に登録することかもしれません
私は名前付きクエリを使用しています。これがどうなるかの例を教えてください。 –
@H。 van de Kamp:例を示すために私の答えを編集しました –