繁体   English   中英

使用注释和MySQL进行休眠:创建日期

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM