/* * Copyright 2013 GiavaCms.org. * * Licensed under the Eclipse Public License version 1.0, available at * http://www.eclipse.org/legal/epl-v10.html */ package org.giavacms.common.model; import java.io.Serializable; import java.util.Date; import javax.persistence.MappedSuperclass; import javax.persistence.PrePersist; import javax.persistence.PreUpdate; import javax.persistence.Temporal; import javax.persistence.TemporalType; @MappedSuperclass public abstract class BaseEntity implements Serializable { private static final long serialVersionUID = 1L; private Long id; @Temporal(TemporalType.TIMESTAMP) private Date createdOn; @Temporal(TemporalType.TIMESTAMP) private Date modifiedOn; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Date getCreatedOn() { return createdOn; } public void setCreatedOn(Date createdOn) { this.createdOn = createdOn; } public Date getModifiedOn() { return modifiedOn; } public void setModifiedOn(Date modifiedOn) { this.modifiedOn = modifiedOn; } @PrePersist public void initTimeStamps() { if (createdOn == null) { createdOn = new Date(); } modifiedOn = createdOn; } @PreUpdate public void updateTimeStamp() { modifiedOn = new Date(); } }