I need to keep a log of all transactions of an entity with Hibernate Envers. I configured persistence.xml as follows:
<!-- Configurações do Envers -->
<property name="hibernate.ejb.event.post-insert" value="org.hibernate.ejb.event.EJB3PostInsertEventListener,org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.post-update" value="org.hibernate.ejb.event.EJB3PostUpdateEventListener,org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.post-delete" value="org.hibernate.ejb.event.EJB3PostDeleteEventListener,org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.pre-collection-update" value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.pre-collection-remove" value="org.hibernate.envers.event.AuditEventListener" />
<property name="hibernate.ejb.event.post-collection-recreate" value="org.hibernate.envers.event.AuditEventListener" />
I created an Author class as below:
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import org.hibernate.envers.Audited;
@Entity
@Audited
public class Autor {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String nome;
@OneToMany(mappedBy = "autor")
private List<Livro> livro;
public Autor() {
}
public Autor(String nome) {
this.nome = nome;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public List<Livro> getLivro() {
return livro;
}
public void setLivro(List<Livro> livro) {
this.livro = livro;
}
@Override
public String toString() {
return "Autor [id=" + id + ", nome=" + nome + ", livro=" + livro + "]";
}
}
Checking what happened in the database after some insertions and changes to some records, I noticed that the modifications are actually being audited in the table, but I'm not finding a way to store the date and time of each of the modifications. Is there any annotation that can be placed in the class that records this information?