Spa*_*ace 3 java mysql spring hibernate
我想插入自动插入created_at日期时间和相应的updated_at日期时间的数据.
我有一个pojo:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@Column(name = "name")
private String name;
@Basic(optional = false)
@CreationTimestamp
@Column(name = "created_at")
@Temporal(TemporalType.TIMESTAMP)
private Date createdAt;
@UpdateTimestamp
@Column(name = "updated_at")
@Temporal(TemporalType.TIMESTAMP)
private Date updatedAt;
Run Code Online (Sandbox Code Playgroud)
在我的数据库中,我使用DATETIME作为created_at和updated_at的类型.但我无法插入数据,而是提供错误消息not-null属性引用null或transient值:com.project.test.entity.Stamp.createdAt.
我想知道为created_at和updated_at DateTime字段定义数据库模式的正确方法,以使其自动生成.
你可以做下面这样的事情.
1)使用新的Date()初始化您创建和更新的日期:
@Basic(optional = false)
@CreationTimestamp
@Column(name = "created_at")
@Temporal(TemporalType.TIMESTAMP)
private Date createdAt = new Date(); // initialize created date
@UpdateTimestamp
@Column(name = "updated_at")
@Temporal(TemporalType.TIMESTAMP)
private Date updatedAt = new Date(); // initialize updated date
Run Code Online (Sandbox Code Playgroud)
2)并通过新的Date()提供更新日期的setter方法,而不传递任何值:
@PreUpdate
public void setUpdatedAt() {
this.updatedAt= new Date();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2099 次 |
| 最近记录: |