簡體   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