package me.test.domain; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.PrePersist; import javax.persistence.PreUpdate; import javax.persistence.Version; @Entity public class User { @Id @GeneratedValue private Long id; private String name; @Version private Date version; private Date created; private Date updated; @PrePersist protected void onCreate() { updated = created = new Date(); } @PreUpdate protected void onUpdate() { updated = new Date(); } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } public Date getUpdated() { return updated; } public void setUpdated(Date updated) { this.updated = updated; } public Date getVersion() { return version; } public void setVersion(Date version) { this.version = version; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", version=" + version + ", created=" + created + ", updated=" + updated + "]"; } }