package qa.qcri.aidr.data.persistence.entity; import java.io.Serializable; import java.sql.Timestamp; import javax.persistence.Column; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.MappedSuperclass; import javax.persistence.PrePersist; import javax.persistence.PreUpdate; /** * @author Latika * */ @MappedSuperclass public class BaseEntity implements Serializable{ /** * */ private static final long serialVersionUID = 9015978098898586703L; @Id @GeneratedValue(strategy=GenerationType.AUTO) protected Long id; @Column(updatable = false, nullable=false, name = "created_at") private Timestamp createdAt; @Column(nullable=false, name = "updated_at") private Timestamp updatedAt; @PreUpdate protected void onUpdate() { updatedAt = new Timestamp(System.currentTimeMillis()); } @PrePersist public void onCreate() { updatedAt = new Timestamp(System.currentTimeMillis()); createdAt = updatedAt; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Timestamp getCreatedAt() { return createdAt; } public void setCreatedAt(Timestamp createdAt) { this.createdAt = createdAt; } public Timestamp getUpdatedAt() { return updatedAt; } public void setUpdatedAt(Timestamp updatedAt) { this.updatedAt = updatedAt; } }