12.7.4. Getting Started with Entity Auditing
12.7.4.1. Add Auditing Support to a JPA Entity
JBoss EAP 6 uses entity auditing, through Section 12.7.1, “About Hibernate Envers”, to track the historical changes of a persistent class. This topic covers adding auditing support for a JPA entity.
Procedure 12.8. Add Auditing Support to a JPA Entity
- Configure the available auditing parameters to suit the deployment: Section 12.7.5.1, “Configure Envers Parameters”.
- Open the JPA entity to be audited.
- Import the
org.hibernate.envers.Audited
interface. - Apply the
@Audited
annotation to each field or property to be audited, or apply it once to the whole class.Example 12.30. Audit Two Fields
import org.hibernate.envers.Audited; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.GeneratedValue; import javax.persistence.Column; @Entity public class Person { @Id @GeneratedValue private int id; @Audited private String name; private String surname; @ManyToOne @Audited private Address address; // add getters, setters, constructors, equals and hashCode here }
Example 12.31. Audit an entire Class
import org.hibernate.envers.Audited; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.GeneratedValue; import javax.persistence.Column; @Entity @Audited public class Person { @Id @GeneratedValue private int id; private String name; private String surname; @ManyToOne private Address address; // add getters, setters, constructors, equals and hashCode here }
Result
The JPA entity has been configured for auditing. A table called Entity_AUD
will be created to store the historical changes.