Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

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

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

JBoss EAP 6 は、エンティティー監査を使用します。「Hibernate Envers について」、永続クラスの履歴変更を追跡します。このトピックでは、JPA エンティティーの監査サポートの追加について説明します。

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

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

    例13.30 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
    }
    

    例13.31 クラス全体を監査する

    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 というテーブルが作成されます。