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