【发布时间】:2010-09-21 03:46:38
【问题描述】:
我有一堆具有 date_created 和 date_modified 字段的实体,我试图让这些字段在插入或更新时自动设置。 date_created 只在插入时设置,而 date_modified 在插入或更新时都设置。
我的实体类中有一个带有@PreUpdate 注释的方法,但它似乎只在实体更新时才被调用。插入新实体时不会调用它。文档说明了 preUpdate 事件:
“preUpdate 事件发生在对实体数据进行数据库更新操作之前。”
这是正确的行为吗?如果是这样,在更新或插入之前调用方法的最佳方法是什么?目前,如果我同时使用 @PreUpdate 和 @PrePersist 标记该方法,那么它可以工作,但我不确定这是否是最佳的:
/**
* @PreUpdate
* @PrePersist
*/
public function beforeSave()
{
if (!$this->getCreatedAt()) {
$this->setCreatedAt(new \DateTime());
}
$this->setModifiedAt(new \DateTime());
}
【问题讨论】: