package com.sap.pto.dao.entities;
import java.util.Date;
import javax.persistence.MappedSuperclass;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.joda.time.DateTime;
import com.sap.pto.services.util.JsonIgnore;
/**
* Commonly needed attributes of all entities.
*
*/
@MappedSuperclass
public abstract class BasicEntity {
@Temporal(TemporalType.TIMESTAMP)
@JsonIgnore
private Date dateCreated;
@Temporal(TemporalType.TIMESTAMP)
@JsonIgnore
private Date dateModified;
public Date getDateCreated() {
return dateCreated;
}
public void setDateCreated(Date dateCreated) {
this.dateCreated = dateCreated;
}
public void setDateCreated(DateTime dateCreated) {
this.dateCreated = dateCreated.toDate();
}
public Date getDateModified() {
return dateModified;
}
@PreUpdate
@PrePersist
public void updateTimeStamps() {
if (dateCreated == null) {
dateCreated = new Date();
}
dateModified = new Date();
}
}