AuditableEntity.java
/*
* +====================================================================+
* | Copyright (C) 2015 Rochester Institute of Technology, |
* | 103 Lomb Memorial Drive, Rochester, NY - 14623 |
* | All Rights Reserved. |
* +====================================================================+
* FILENAME
* AuditableEntity.java
*
* AUTHOR
* @author Khanh Ho (kchisd at rit.edu)
*
* =====================================================================
*/
package edu.rit.coopeval.model;
import javax.persistence.*;
import java.time.Instant;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.springframework.data.annotation.*;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
/**
* Base abstract class for entity that requires auditing information.
*/
@EntityListeners(AuditingEntityListener.class)
@MappedSuperclass
public abstract class AuditableEntity {
@CreatedDate
@Column(name = "CREATED_AT")
private Instant createdAt;
@CreatedBy
@Column(name = "CREATED_BY")
private String createdBy;
@LastModifiedDate
@Column(name = "MOD_AT")
private Instant modAt;
@LastModifiedBy
@Column(name = "MOD_BY")
private String modBy;
@JsonProperty
public Instant getCreatedAt() {
return createdAt;
}
@JsonIgnore
public void setCreatedAt(Instant createdAt) {
this.createdAt = createdAt;
}
@JsonProperty
public String getCreatedBy() {
return createdBy;
}
@JsonIgnore
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
@JsonProperty
public Instant getModAt() {
return modAt;
}
@JsonIgnore
public void setModAt(Instant modAt) {
this.modAt = modAt;
}
@JsonProperty
public String getModBy() {
return modBy;
}
@JsonIgnore
public void setModBy(String modBy) {
this.modBy = modBy;
}
}