10.7.4. エンティティー監査の開始

10.7.4.1. JPA エンティティーへの監査サポートの追加

タスクの概要
JBoss Enterprise Application Platform 6 は、「Hibernate Envers について」 を行ってエンティティーの監査を使用し、永続クラスの変更履歴を追跡します。本トピックでは、JPA エンティティーへの監査サポートを追加する方法について取り上げます。

手順10.8 JPA エンティティーへの監査サポートの追加

  1. 「Envers パラメーターの設定」 に従って、デプロイメントに適した使用可能な監査パラメーターを設定します。
  2. 監査対象となる JPA エンティティーを開きます。
  3. org.hibernate.envers.Audited インターフェースをインポートします。
  4. 監査対象となる各フィールドまたはプロパティーに @Audited アノテーションを付けます。または、1 度にクラス全体へアノテーションを付けます。

    例10.26 2 つのフィールドの監査

    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
    }
    

    例10.27 クラス全体の監査

    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
    }
    
結果
JPA エンティティーの監査が設定されました。変更履歴を保存するため Entity_AUD と呼ばれるテーブルが作成されます。