在spring数据实体中填充“created”列

时间:2013-02-28 21:30:34

标签: java spring hibernate

@javax.persistence.Column(name = "created", nullable = false, insertable = true, updatable = true, length = 19, precision = 0)
@Basic
public Timestamp getCreated() {
    return created;
}

public void setCreated(Timestamp created) {
    this.created = created;
}

我有这个实体,我想让MySQL提供创建的时间戳。我已尝试添加@GeneratedValuenullable = true,但在保存时说明该值不能为空时仍然失败。

我理解我的实体正在传递null,因为这是默认值,因此MySQL正在抛出错误,因为我试图传递null并且它没有设置为NULl字段。

但是,我可以在java对象级别上解决这个问题吗?比如说,保存实体时不提交created列?

1 个答案:

答案 0 :(得分:2)

使用@PrePersist处理程序初始化字段。初始化将在保存实体之前完成,从而避免空指针异常。

@PrePersist
protected void beforeCreate() {
    if(created == null)
        created = new Timestamp(System.currentTimeMillis());
}