1

Playフレームワークを使い始めたばかりですが、いくつか質問があります...

いくつかの背景情報。Play 2.0.4を使用しており、Ebeanを使用してエンティティを保存しています。私のユーザーエンティティには2つのフィールドがあります。1つはcreated_onと呼ばれ、もう1つはupdated_onと呼ばれます。どちらもjava.util.Dateです。私の質問は、「created_on」変数を作成するのに最適な場所はどこですか?私は現在、ユーザーモデルで次のように書いています

 public Date created_on = new Date();

これはそれを置くのに最適な場所ですか?そして、フォーマットを「dd-MM-yyyy」に設定したいと思います。私は現在使用しています

 @Formats.DateTime(pattern="dd-MM-yyyy")

しかし、それは機能していないようです。created_onは、「Wed Jan 2316:41:21EST2013」として出力されます。また、更新を行うたびにupdated_onフィールドを現在の時刻に変更したいのですが、どこにコーディングすればよいですか?どうすればいいですか?

どうもありがとうございます

4

2 に答える 2

1

2つの選択肢があります-データベース側のフィールドにデフォルト値を追加するCURRENT_TIMESTAMPか、現在のように実行します-オブジェクトの初期化時にデフォルト値を設定します。私は後者を好む傾向があります。データベースから更新する必要なしに、保存後にエンティティに日付があるためです。

于 2013-01-23T06:54:22.857 に答える
1

でトリックをcreatedOn実行できますが、 on update アクションで同じことを行うことはできませんupdatedOn-そのような場合、おそらく最速の解決策は、同じタスクを実行するためのモデルの上書きsave()update(Object o)メソッドです。

/**
 * Set default data while saving
 */
public void save() {
    this.createdOn = new Date();
    this.updatedOn = new Date();
    super.save();
}

/**
 * Set default data while updating
 */
public void update(Object o) {
    // here you don't want to change createdOn value anymore
    this.updatedOn = new Date(); 
    super.update(o);
}
于 2013-01-23T07:59:29.977 に答える