私はデータベースにタイムスタンプを持っており、アプリケーションには日付があります。私は、休止状態が時間部分ではなく日付と一致するすべてのエントリをプルできる方法で休止状態を記述するのが好きです。例: 日付の日付部分のみをHibernateのタイムスタンプと比較する
DBのタイムスタンプで2011-12-01午後3時14分14秒
およびアプリケーションでは、私は、デフォルトの時刻部分でありjava.util.Dateを持っています。
私の問題は、私は、コードを次のようにデータベースからエントリを検索するとき、私は何も
DetachedCriteria criteria = DetachedCriteria.forClass(MyClass.class);
criteria.add(Restrictions.like(TIMESTAMP_FIELD, javaUtilDate));
List entries =this.getHibernateTemplate().findByCriteria(criteria);
を取得していないようなオペレータが唯一の文字列値に使用することができ、事前
日付を文字列に変換すると、私に2011-12-11 02:00:00と表示されます。それを引くか、1日追加すると、私のクエリはもっともらしい結果を引き出せません。このようにして、私は時間の部分のために指定された日の前にあるものを得るでしょう。 – Rehman
適切な日付制限を使用してください。すべての時間フィールド(時、分、秒、ミリ秒)を0に設定します。これによって下限が決まります。 1日追加する。それが上限です。 –