[英]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.