私は自分のデータの履歴を作成するために休止状態を使用していますが、正常に動作しています。ここで問題となるのは、履歴テーブルに重複したデータを作成することです。つまり、履歴テーブルにデータを作成するのは、監査対象テーブルに変更があったかどうかです。私は変更されたフィールドだけを履歴テーブルに保存します。私は冬眠するために新しいです。私に何ができる?Hibernate Enversを使用した監査
答えて
私があなたの質問を正しく理解していれば、Enversは少なくともそのようには機能しません。
Enversは、コミットする直前に、監査されたエンティティの状態を調べ、変更された属性があるかどうかを判断し、その時点でそのエンティティのすべての監査フィールドのスナップショットを記録します。つまり、監査エントリが作成されないのは、属性が変更されていない場合のみです。
しかし、スナップショットアプローチも使用しています。なぜなら、これはQuery APIと非常によく似ているからです。
特定のリビジョンのエンティティを検索するクエリが、そのリビジョンからすべての行を最初に読み込み、各行を反復し、取得した列の状態をマージして単一のインスタンスをインスタンス化するだけの場合行結果セット。
スナップショットのアプローチでは、次のクエリ、ループまたは反復処理に至りません。
SELECT e FROM AuditedEntity e WHERE e.revisionNumber = :revisionNumber
これは、はるかに効率的なI/Oの観点の両方から単一行の結果セットではなく複数行の結果セットのクライアントよりもストリーミングするためのデータ・ページとネットワークを読み取るデータベースとなります。
この場合、「スペースは安い」と言っていますが、あなたのアプリケーションが他のやり方でやり遂げることになるコストと非効率性とを比較すると、は本当に当てはまります。
これは、おそらくユーザー設定の戦略によってEnversがサポートしたいものなら、JIRAの新しい機能要求をhibernate-envers
に記録することを歓迎し、その実現可能性を見てみることができます。
ご清聴ありがとうございます。 – iamarpit
- 1. Hibernate Envers:@CollectionTableフィールドの監査
- 2. EnversとHibernate Spatialで監査4
- 3. MySQL監査テーブル:hibernate-enversとトリガー
- 4. java hibernate enversが監査テーブル用に他の主キーを設定しました
- 5. Hibernate Envers - 起動時に監査テーブルを書き込む
- 6. EnversでHibernateの読み取りを監査する方法は?
- 7. Hibernate Enversでの監査の種類を制限する方法
- 8. Hibernate - エンティティ監査
- 9. Enversのみ監査の削除
- 10. Hibernate Envers:カスケード削除の監査テーブルにエントリを削除しません。
- 11. Hibernate SQL監査ログ
- 12. Hibernate Enversを使用している場合、監査直後にrev idを取得する方法
- 13. Hibernate Envers - @OneToMany関係にあるエンティティの変更を監査する方法は?
- 14. Hibernate Envers監査テーブルを別のスキーマに格納する方法は?
- 15. Hibernateはサフィックスのない監査テーブルを使用します
- 16. postgresqlを使用した監査テーブル
- 17. Spring AOPを使用した監査ログ
- 18. 監査列のトリガーを使用して
- 19. 値が変更された場合に限り、Hibernate - Envers - >属性の監査/バージョン化
- 20. 私たちは、mysqlデータベースのテーブルをenversで監査できますか?
- 21. Enversを使用して多対多の関係を監査するのが難しい
- 22. hibernate-envers onetomany結合クラスは監査されませんが、結合列は監査する必要があります
- 23. Enversが監査テーブルのメタデータをHibernateに渡すクラスおよびメソッドとは何ですか?
- 24. Hibernate Envers performance MySQL
- 25. 休止状態のEnversを使用して不要な監査を回避する方法
- 26. Hibernate Enversによる監査:IDが 'id'でない場合の問い合わせ方法
- 27. Hibernate Enversを使用して結合テーブルおよび関連するエンティティを監査する方法はありますか?
- 28. spring-data-envers Hibernate java.lang.NoSuchMethodError:org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator
- 29. Hibernate Envers:ログユーザIPアドレス
- 30. Hibernate Enversでのインテグレーションテスト
これまでに試した解決策をご提供ください。 – Garren
@ Garren-私は今、監査された注釈を試しましたが、問題は履歴テーブルの重複データです。これを行う他の方法はありますか? – iamarpit