[英]Hibernate with Annotations and MySQL: Creation Date
我嘗試保存創建實體的日期。 我找到了這種方法。 我嘗試實現它,但日期未達到我的數據庫表。
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.PrePersist;
@Entity
public class Project implements Serializable {
private static final long serialVersionUID = 7620757776698607619L;
@Id
int id;
String title;
Date created;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public void setTitle(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
@PrePersist
protected void onCreate() {
created = new Date();
}
public Date getCreated() {
return created;
}
}
僅標題被保存。 數據字段為空:-(
我的錯誤在哪里? 感謝你們對我的幫助。
我試圖添加pascal的注釋,但沒有幫助。 我是否應該使用sql.date而不是utils.date。 我嘗試了這個,但是我找不到如何獲取今天的日期...
我想知道是否缺少針對created
日期的二傳手不是問題。 順便說一句,我還將在created
日期上定義一個Temporal
注釋,以保存日期和時間。 像這樣:
@Entity
public class Project implements Serializable {
@Id
private int id;
private String title;
@Temporal(TemporalType.TIMESTAMP)
private Date created;
...
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
@PrePersist
protected void onCreate() {
created = new Date();
}
}
我沒有做到,但是我找到了另一種方法:
@Entity
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private Date created;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
}
那就是我的EntityObject ...我將其保留為標准方式,並將邏輯放入上面的控制器層中:
public String saveNewProject() {
projectData.getProjectDTO().setCreated(new Date());
projectService.addProject(projectData.getProjectDTO());
實際上,我更喜歡這種方式,因為如果有一天我將持久層降級,我將不必傳遞邏輯……歡呼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.