1
@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保存实体时不提交列?

4

1 回答 1

2

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

@PrePersist
protected void beforeCreate() {
    if(created == null)
        created = new Timestamp(System.currentTimeMillis());
}
于 2013-02-28T21:33:15.293 回答