Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Date;
- import javax.persistence.Column;
- import javax.persistence.MappedSuperclass;
- import javax.persistence.PrePersist;
- import javax.persistence.PreUpdate;
- import javax.persistence.Temporal;
- import javax.persistence.TemporalType;
- @MappedSuperclass
- public class AbstractTimestampEntity {
- @Temporal(TemporalType.TIMESTAMP)
- @Column(name = "created", nullable = false)
- private Date created;
- @Temporal(TemporalType.TIMESTAMP)
- @Column(name = "updated", nullable = false)
- private Date updated;
- @PrePersist
- protected void onCreate() {
- updated = created = new Date();
- }
- @PreUpdate
- protected void onUpdate() {
- updated = new Date();
- }
- }
- import java.util.Date;
- import javax.persistence.Column;
- import javax.persistence.MappedSuperclass;
- import javax.persistence.PrePersist;
- import javax.persistence.PreUpdate;
- import javax.persistence.Temporal;
- import javax.persistence.TemporalType;
- @MappedSuperclass
- public class AbstractTimestampEntity {
- @Temporal(TemporalType.TIMESTAMP)
- @Column(name = "created", nullable = false)
- private Date created;
- @Temporal(TemporalType.TIMESTAMP)
- @Column(name = "updated", nullable = false)
- private Date updated;
- @PrePersist
- protected void onCreate() {
- updated = created = new Date();
- }
- @PreUpdate
- protected void onUpdate() {
- updated = new Date();
- }
- }
- @Entity
- @Table(name = "campaign")
- public class Campaign extends AbstractTimestampEntity implements Serializable {
- ...
- }
- public interface TimeStamp {
- public Date getCreatedDate();
- public void setCreatedDate(Date createdDate);
- public Date getLastUpdated();
- public void setLastUpdated(Date lastUpdatedDate);
- }
- public class TimeStampInterceptor extends EmptyInterceptor {
- public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState,
- Object[] previousState, String[] propertyNames, Type[] types) {
- if (entity instanceof TimeStamped) {
- int indexOf = ArrayUtils.indexOf(propertyNames, "lastUpdated");
- currentState[indexOf] = new Date();
- return true;
- }
- return false;
- }
- public boolean onSave(Object entity, Serializable id, Object[] state,
- String[] propertyNames, Type[] types) {
- if (entity instanceof TimeStamped) {
- int indexOf = ArrayUtils.indexOf(propertyNames, "createdDate");
- state[indexOf] = new Date();
- return true;
- }
- return false;
- }
- }
Add Comment
Please, Sign In to add comment