是否可以将@PrePersist和@PreUpdate与eBean和Play一起使用! 2.0?

时间:2012-03-29 01:58:45

标签: playframework playframework-2.0 ebean

我想知道是否可以将@PrePersist@PreUpdate用于Ebean并播放! 2.0。如果是这样,该功能如何激活。我已经看到一个月前有一个pull request添加了这个功能,但是我无法在Play 2.0上使用它。

由于

4 个答案:

答案 0 :(得分:10)

如果您的目标只是设置createdAt或updatedAt字段,并且您正在使用EBean,请尝试@CreatedTimestamp@UpdatedTimestamp。见here。我更喜欢使用Biesior的方法,但它似乎在Cascades上失败 - 这些方法从未被调用过。

@Column(name="created_at")
@CreatedTimestamp
private Date createdAt;

@Column(name="updated_at")
@UpdatedTimestamp
private Date updatedAt;

答案 1 :(得分:4)

不是直接答案,但您可以通过覆盖模型中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);
    }


}

答案 2 :(得分:3)

似乎可以采用BeanPersistController来实现预处理和后处理选项。

要在Play中配置它,请修改application.conf文件,as such

ebean.default="models.*,models.adapters.YourPersistController"

答案 3 :(得分:1)

我真的很迟,但你可以使用它:https://gist.github.com/1547244。您需要在application.conf中注册此类,如下所示:

ebean.default="models.*, models.sgcore.SGBeanPersistController"