@PrePersist
とをEbean
として再生できるかどうか知りたいですか? 2.0。もしそうなら、この機能はどのように起動されますか?私はpull requestが1ヶ月前にこの機能を追加していたのを見ましたが、私はこの作業をPlay 2.0で行うことはできません。@PrePersistと@PreUpdateをeBeanとPlayで使用することは可能ですか? 2.0?
おかげ
@PrePersist
とをEbean
として再生できるかどうか知りたいですか? 2.0。もしそうなら、この機能はどのように起動されますか?私はpull requestが1ヶ月前にこの機能を追加していたのを見ましたが、私はこの作業をPlay 2.0で行うことはできません。@PrePersistと@PreUpdateをeBeanとPlayで使用することは可能ですか? 2.0?
おかげ
進むべき道は、前処理および後処理オプションを提供していますBeanPersistControllerを実装することであるようです。
は as such、application.conf
ファイルを修正し、プレイ中にそれを設定するには、次の
ebean.default="models.*,models.adapters.YourPersistController"
を。
ない直接答えていますが、モデル内Model
クラスのメソッドをオーバーライドすることにより、これらの機能をシミュレートすることができ、サンプル:
public class Post extends Model {
// ....
@Override
public void save() {
this.createDate = new Date();
this.modifyDate = new Date();
super.save();
}
@Override
public void update(Object o) {
this.modifyDate = new Date();
super.update(o);
}
}
私は本当に遅く、この上だが、あなたは、この使用することができます:https://gist.github.com/1547244を。あなたはこのようapplication.confあなたにこのクラスを登録する必要があります:
ebean.default="models.*, models.sgcore.SGBeanPersistController"
あなたの目標はただcreatedAtまたはupdatedAtフィールドを設定している、とあなたはEBeanを使用している場合は、@CreatedTimestamp
と@UpdatedTimestamp
を試してみてください。 hereを参照してください。私はBiesiorのアプローチを使用する方が好きですが、カスケードで失敗するように思われました。メソッドは呼び出されませんでした。
@Column(name="created_at")
@CreatedTimestamp
private Date createdAt;
@Column(name="updated_at")
@UpdatedTimestamp
private Date updatedAt;
私は知らないが、https://github.com/playframework/Play20/pull/113によれば、PLAY2でそれを設定する方法、BeanPersistListenerで可能でなければなりません。 – sealskej