package org.hibernate.brmeyer.demo;
import java.io.Serializable;
import java.text.DateFormat;
import javax.persistence.Entity;
import org.hibernate.envers.DefaultTrackingModifiedEntitiesRevisionEntity;
import org.hibernate.envers.EntityTrackingRevisionListener;
import org.hibernate.envers.RevisionEntity;
import org.hibernate.envers.RevisionType;
@Entity
@RevisionEntity(CustomRevisionListener.class)
public class CustomRevisionEntity extends DefaultTrackingModifiedEntitiesRevisionEntity implements EntityTrackingRevisionListener {
private String modifiedBy;
private String ipAddress;
public String getModifiedBy() {
return modifiedBy;
}
public void setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
}
public String getIpAddress() {
return ipAddress;
}
public void setIpAddress(String ipAddress) {
this.ipAddress = ipAddress;
}
@Override
public String toString() {
return "CustomRevisionEntity(id = " + getId()
+ ", revisionDate = " + DateFormat.getDateTimeInstance().format( getRevisionDate() )
+ ", modifiedEntityNames = " + getModifiedEntityNames()
+ ", modifiedBy = " + modifiedBy
+ ", ipAddress = " + ipAddress + ")";
}
@Override
public void newRevision(Object revisionEntity) {
// do nothing -- here purely to demonstrate capabilities
}
@Override
public void entityChanged(Class entityClass, String entityName, Serializable entityId, RevisionType revisionType,
Object revisionEntity) {
// do nothing -- here purely to demonstrate capabilities
}
}