MySQLから持ち込まれたオブジェクトを表すエンティティクラスがあります。フィールドの1つは、Hibernateを介してマップしたMySQLDateTimeフィールドです。
@Temporal(TemporalType.DATE)
private Date effdate;
ただし、その日付がデータベースからnullである場合は、setterメソッドで現在の日付に設定します。私が理解しているように、Hibernateはデフォルトをサポートしておらず、 columnDefinition句を使用してフィールドをデフォルトにすると、実装がベンダーに関連付けられます。
フィールドがMySQLに適切に入力されると、2番目の出力行のように見えます。デフォルトにすると、最初のように見えます。2つの日付フィールドが同じように見えるべきではありませんか?最終的に問題がなければ、心配する必要はありませんが、Dateオブジェクトの表示がどのように異なるかを理解したいと思います。SimpleDateFormatについては知っていますが、どちらも単なる日付オブジェクトであるため、ここで機能するかどうかはわかりません。@Temporalアノテーションはそれに何かをしていますか?
Tue Apr 24 14:34:10 EDT 2012 <- my default
2012-04-24 00:00:00.0 <- from MySQL
セッターメソッド
public void setEffdate(Date effdate) {
// TODO if effdate is null use "d"
Date d = new Date();
this.effdate = effdate;
System.out.println(d);
System.out.println(this.effdate + "\n");