Vous pouvez faire quelque chose comme ci-dessous.
1) initialisez votre date de création et mise à jour en utilisant new 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
2) et fournissez votre méthode setter pour la date mise à jour par new Date() , sans lui transmettre de valeur :
@PreUpdate
public void setUpdatedAt() {
this.updatedAt= new Date();
}