3

状況があります。mysql データベースには 2 種類の日付があります。1 つは日付で、もう 1 つは日時です。休止状態の基準では、ある日付が他の日付よりも大きいかどうかを確認する必要がありますか?

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

しかし、さまざまなタイプが原因で、「java.lang.ClassCastException: java.lang.String を java.util.Date にキャストできません」という問題が発生しています。

日付パーサーを使用して解析しようとしましたが、文字列のみとして取得しているため、日付として取得していません。では、休止状態の基準内で 1 つの日付を別の型に変換する方法を教えてください。

4

1 に答える 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)2つのエンティティプロパティを比較することです

使用Restrictions.lt("Y", "X")し、「Y」が日付プロパティの名前である場合、休止状態は「X」を(列名ではなく)日付に変換しようとし、「X」を日付に解析するのは、ちょっと複雑なので、例外が発生します。

于 2010-12-03T07:44:17.133 に答える