I have the following class:
@Data
@Builder
public class SampleClass<String, String> {
@NonNull
String key;
@NonNull
String value;
}
Is there any way to add a timestamp for when the class is initialized and when the value is changed/edited/updated?
I have attempted adding:
@Temporal(TemporalType.TIMESTAMP) private TimeStamp editedAt;
But does not seem to be what I am looking for.
Advertisement
Answer
You could achieve it with a few options. However, Lombok could not help you will it. You have to use other options.
You could use @CreationTimestamp & @UpdateTimestamp:
@Column @CreationTimestamp @Temporal(TemporalType.TIMESTAMP) private Date createAt; @Column @UpdateTimestamp @Temporal(TemporalType.TIMESTAMP) private Date editedAt;
Another way is to use @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();
}
}