0

バックエンドとして Hibernate 3.2.1 と Oracle 10g を使用して Spring 3.0.2 を使用しています。Oracle データベースのテーブルに、データ型が のフィールドがありますDate。この型フィールドは、Hibernate (POJO) では次のようにDateマッピングされます。java.util.Date

private Date discountStartDate;

Oracle テーブルにデータを挿入または更新しているときにjava.lang.String、このようなタイプの日付を指定してい08/15/2012 15:08:13ます。全く問題ありません。すべてがうまく機能しますが、Oracle の日付データ型 (私の知る限り) は常にjava.util.DateHibernate エンティティにマップされるため、Calendar などの他の Java API を使用することはできず、クラスの非推奨のコンストラクターを使用して、次のように Hibernate を処理する必要があります。 Date.

Discount obj=new Discount();
date=new Date(request.getParameter("txtDiscountStartDate"));
obj.setDiscountStartDate(date);

このような非推奨の機能は避けるべきです。Hibernate でこの非推奨のDate ("StringDate") コンストラクターを回避する方法はありますか?

4

1 に答える 1

3

いいえ、違います。

それを構文解析しStringて、とDateを使用する必要がDateFormatありSimpleDateFormatます。

ここに例があります。

これはあなたにとって難しいように思われるので、別の例を次に示します。

DateFormat formatter = new SimpleDateFormat("yyyy-MMM-dd");
formatter.setLenient(false);
String discountDateAsString = request.getParameter("txtDiscountStartDate");
Date discountDate = formatter.parse(discountDateAsString);
于 2012-08-15T10:14:09.067 に答える