有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在spring数据实体中填充“已创建”列

@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

我知道我的实体正在传递null,因为这是默认值,所以MySQL抛出了一个错误,因为我试图传递null,但它没有设置为null字段

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


共 (1) 个答案

  1. # 1 楼答案

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

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