2010-11-28のような文字列を日付型に変換してPostgreSQLデータベースに保存する必要があります。私はこのコードを試しましたが、データベースの結果をチェックすると、両方の日付がNULLです:Java:文字列を日付に変換
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date validStartDate=null;
Date validEndDate=null;
try {
validStartDate = df.parse(startDate);
validEndDate = df.parse(endDate);
} catch (Exception e) {
...
}
Assigment a = new Assignment(..., validStartDate, validEndDate);
session.save(s);
------------------------- -------編集----------------------------
startDateとendDateは、yyyy- mm-ddのような2010-11-27。スタックトレースには何もありません(変換はどうにか動作するようです)。もし何かがあったら、私はおそらく何が間違っているか知っているでしょう。変換後、日付はpostgresデータベースに保存されます。はい、sql.Dateの代わりにutil.Dateを使用しました(おそらく最初の間違いです)。
------------------------------- Edit2 -------------- -------------
コードは簡略化されていますが、スタックトレースに何も表示されず、validStartDateとvalidEndDateが次のように変換されます。Tue Nov 30 00:00:00 CET(ヌルではない)。代入は実際にはデータベースに正しく保存されています。 sql:public.assignment(type、valid_start_date、valid_end_date、id)の値(5、NULL、NULL、2)に挿入します。私はsql.Dateを使用しようとしましたが、成功しませんでした。
----------------------------割り当てマッピング---------------- -
<hibernate-mapping>
<class name="model.Assignment" schema="public" table="assignment">
<id name="id" type="int">
<column name="id"/>
<generator class="increment"/>
</id>
<property name="validStartDate" type="date">
<column name="valid_start_date" length="13" />
</property>
<property name="validEndDate" type="date">
<column name="valid_end_date" length="13" />
</property>
<property name="type" type="integer">
<column name="type" />
</property>
</class>
</hibernate-mapping>
私はユーザーデータを保存するためにHibernateを使用しています。 Stringは、JQueryウィジェットDatepickerによって作成されます。誰もがその問題を解決する方法を知っていますか?事前におかげで助けてください。
'startDate'と' endDate'は正しく設定されていますか? – Bozho
したがって、あなたは例外を処理していませんが、無視してコードフローを続行していますか?あなたは例外をスローする必要があります!問題に関する貴重な情報が含まれています。 – BalusC
あなたのコードは不完全です... 'startDate、endDate'とは何ですか、' a'は 'session''となります。 'catch'は空ですか? – khachik