Puoi fare qualcosa come di seguito.
1) inizializza la data creata e aggiornata utilizzando 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) e fornisci il tuo metodo setter per la data aggiornata entro new Date() , senza passargli alcun valore :
@PreUpdate
public void setUpdatedAt() {
this.updatedAt= new Date();
}