我有以下课程:
@Data
@Builder
public class SampleClass<String, String> {
@NonNull
String key;
@NonNull
String value;
}
有什么方法可以在类初始化时以及值更改/编辑/更新时添加时间戳吗?
我尝试添加:
@Temporal(TemporalType.TIMESTAMP)
private TimeStamp editedAt;
但似乎不是我要找的。
您可以通过一些选择来实现它。但是,Lombok 无法帮助您。您必须使用其他选项。
您可以使用
@CreationTimestamp
和@UpdateTimestamp
:
@Column
@CreationTimestamp
@Temporal(TemporalType.TIMESTAMP)
private Date createAt;
@Column
@UpdateTimestamp
@Temporal(TemporalType.TIMESTAMP)
private Date editedAt;
另一种方法是使用
@PrePersist
& @PreUpdate
:
@Data
@Builder
public class SampleClass {
// other fields
@Column
@Temporal(TemporalType.TIMESTAMP)
private Date createdAt;
@Column
@Temporal(TemporalType.TIMESTAMP)
private Date updatedAt;
@PrePersist
protected void onCreate() {
createdAt = new Date();
}
@PreUpdate
protected void onUpdate() {
updatedAt = new Date();
}
}