2010-12-03 10 views
3

私は状況があります。 mysqlデータベースには2種類の日付があります。 1つは日付で、もう1つは日時です。今、休止状態の基準で、ある日付が他の日付よりも大きいかどうかをチェックする必要がありますか?日付タイプを休止状態に変換する方法

criteria.add(Restrictions.lt( "award.deadline"、 "submission.date_received"));

しかし、異なるタイプが「java.lang.ClassCastExceptionが:java.lang.Stringではjava.util.Dateにキャストすることはできません」を示す問題を引き起こしています。

はさえ、私は日付のパーサーを使用してそれを解析しようとしたが、それが唯一の文字列として取っているように、日付として服用されていません。だから、どのように私たちは休止状態の基準内で異なる日付に1つの日付を変換することができます私に教えてください?

答えて

5

問題はRestrictions.lt(String propertyName, Object value)が間違っ制限であること、です。必要なのはRestrictions.ltProperty(String propertyName, String otherPropertyName)です。

説明:

  • Restrictions.lt(String propertyName, Object value)が特定の値
  • Restrictions.ltProperty(String propertyName, String otherPropertyName)でエンティティプロパティを比較することであるあなたがRestrictions.lt("Y", "X")を使用し、「Y」の場合2つのエンティティのプロパティ

を比較することです日付プロパティの名前を指定すると、Hibernateは "X"をDate(列名ではなく)に変換しようとし、 "X"をDateに解析すると、少し複雑になり、Exceptionが発生します。

+0

あなたの貴重な答えはThanx Ralphです。 – dhiraj