11.7.5.4. Envers の設定プロパティー

表11.12 エンティティーデータのバージョニング設定パラメーター

プロパティー名 デフォルト値 説明
org.hibernate.envers.audit_table_prefix
監査エンティティーの名前の前に付けられた文字列。監査情報を保持するエンティティーの名前を作成します。
org.hibernate.envers.audit_table_suffix
_AUD
監査情報を保持するエンティティーの名前を作成する監査エンティティーの名前に追加された文字列。たとえば、Person のテーブル名を持つエンティティーが監査される場合は、Envers により履歴データを格納する Person_AUD と呼ばれるテーブルが生成されます。
org.hibernate.envers.revision_field_name
REV
改訂番号を保持する監査エンティティーのフィールド名。
org.hibernate.envers.revision_type_field_name
REVTYPE
リビジョンタイプを保持する監査エンティティーのフィールド名。現在のリビジョンタイプは、addmod、および del です。
org.hibernate.envers.revision_on_collection_change
true
このプロパティーは、所有されていない関係フィールドが変更された場合にリビジョンを生成するかどうかを決定します。これは、一対多関係のコレクションまたは一対一関係の mappedBy 属性を使用したフィールドのいずれかです。
org.hibernate.envers.do_not_audit_optimistic_locking_field
true
true の場合、オプティミスティックロッキングに使用したプロパティー (@Version のアノテーションがついたもの) は自動的に監査から除外されます。
org.hibernate.envers.store_data_at_delete
false
このプロパティーは、ID のみではなく、他の全プロパティーが null とマークされたエンティティーが削除される場合にエンティティーデータをリビジョンに保存すべきかどうかを定義します。このデータは最終リビジョンに存在するため、これは通常必要ありません。最終リビジョンのデータにアクセスする方が簡単で効率的ですが、この場合、削除前にエンティティーに含まれたデータが 2 回保存されることになります。
org.hibernate.envers.default_schema
null (通常のテーブルと同じ)
監査テーブルに使用されるデフォルトのスキーマ名。@AuditTable(schema="...") アノテーションを使用してオーバーライドできます。このスキーマがない場合、スキーマは通常のテーブルのスキーマと同じです。
org.hibernate.envers.default_catalog
null (通常のテーブルと同じ)
監査テーブルに使用するデフォルトのカタログ名。@AuditTable(catalog="...") アノテーションを使用してオーバーライドできます。このカタログがない場合、カタログは通常のテーブルのカタログと同じです。
org.hibernate.envers.audit_strategy
org.hibernate.envers.strategy.DefaultAuditStrategy
このプロパティーは、監査データを永続化する際に使用する監査ストラテジーを定義します。デフォルトでは、エンティティーが変更されたリビジョンのみが保存されます。あるいは、org.hibernate.envers.strategy.ValidityAuditStrategy が、開始リビジョンと最終リビジョンの両方を保存します。これらは、監査行が有効である場合に定義されます。
org.hibernate.envers.audit_strategy_validity_end_rev_field_name
REVEND
監査エンティティーのリビジョン番号を保持するカラムの名前。このプロパティーは、妥当性監査ストラテジーが使用されている場合のみ有効です。
org.hibernate.envers.audit_strategy_validity_store_revend_timestamp
false
このプロパティーは、データが最後に有効だった最終リビジョンのタイムスタンプを最終リビジョンとともに格納するかどうかを定義します。これは、テーブルパーティショニングを使用することにより、関係データベースから以前の監査レコードを削除する場合に役に立ちます。パーティショニングには、テーブル内に存在する列が必要です。このプロパティーは、ValidityAuditStrategy が使用される場合にのみ評価されます。
org.hibernate.envers.audit_strategy_validity_revend_timestamp_field_name
REVEND_TSTMP
データが有効であった最終リビジョンのタイムスタンプの列名。ValidityAuditStrategy が使用され、 org.hibernate.envers.audit_strategy_validity_store_revend_timestamp が true と評価された場合のみ使用されます。