2013-02-28 37 views
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列?

回答

1

使用@PrePersist處理程序來初始化該字段。初始化將在保存實體之前完成,從而避免空指針異常。

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