1

JPA 2のCriteriaBuilderを使用してDB2 v9でHibernate 4を使用して、日付でフィルタリングできるクエリをその場で作成しています。述語の関連部分は...

criteriaBuilder.greaterThan(myRoot.get(MyEntity_.myDate), aDateValue)

私のマッピングはかなり簡単です...

@Column(name="MY_DATE")
@Temporal(value = TemporalType.DATE)
public Date getMyDate() {
    return myDate;
}

表の列のタイプはDATEです。この制限でクエリを実行すると発生するエラーは...

org.hibernate.exception.DataException: DB2 SQL エラー: SQLCODE=-181、SQLSTATE=22007

生成された SQL をスタンドアロンの SQL エディターで実行すると、問題なく実行されます。TemporalType.TIMESTAMP運が悪いことに変更しようとしました。バインド入力が実行時にも有効であることを再確認しました。

4

2 に答える 2

2

エラーが消えるのではなくaDateValue、タイプの場合であることが判明しました。java.sql.Datejava.util.Date

于 2012-12-08T00:47:12.747 に答える
0

私のために働いた別のオプションは、追加することでした

@Type(type = "date")

エンティティの java.util.Date フィールドに。Hibernate はタイプ java.util.Date を Sql Timestamp にマップするようですが、Type アノテーションが追加されると Date としてマップされます。

于 2014-05-09T18:31:55.400 に答える