2011-03-14 6 views
0

状況は次のとおりです。 SQLサーバーの日付の形式は、Oracleとは異なります。 SQLサーバーでは、TimeStampとして格納されます。 Restriction.eq、Restriction.lt、Restriction.gtはDateオブジェクトでどのように機能しますか?時間だけではなく、日付を使う方法はありますか?日付の休止状態でのCriteria APIの制限の使用

答えて

0

this answerによれば、Restriction.ltPropertyと日付フィールドに関連する制限を使用することができ、Hibernateはそれらを解析するのに最善を尽くします。

このアプローチがうまくいかない場合は、Restrictions.sqlRestrictionを使用してネイティブSQLで制限を書くことができます。

+0

等価チェックのために、私はどのようにRestriction.between( "dateFromDB"、myDateObjSt、myDateObjEnd)を使用しますか?ここで、myDateObjStは時刻が0:0:0.000の日付で、myDateObjEndは時刻が23:59:59.999の日付です。 – Prabhat

+0

あなたの質問に言い換えていただけますか?あなたが何を求めているのか分かりません。 – Thomas

+0

私はDateオブジェクトを持っており、私はDateオブジェクトと等しいかどうかをDBのDateカラムと比較したいと思います。しかし問題は時間も考慮されることです。したがって、日付のみを比較するために、Restriction.between( "dateFromDB"、myDateObjSt、myDateObjEnd)を使用することを考えています。 myDateObjStとmyDateObjEndは、両方のDateオブジェクトです(時刻を除く)。 myDateObjStは時間として0:0:0.000を持ち、myDateObjEndは時間として23:59:59.999を持ちます。 – Prabhat