大規模なデータベースを使用して、本番環境で Hibernate ベースのアプリを使用しています。このアプリケーションの 2 つのエンティティ (2 つのテーブル) に監査を追加する必要があるため、Envers を使用することにしました。
INSERT、UPDATE、または DELETE ごとに、Envers は新しいレコードをエンティティの監査テーブルに追加します。
アプリケーションの開始時から Envers のサポートがあれば、監査テーブルはエンティティの作成時 (INSERT) に入力されます。
Envers のドキュメントは非常に薄く、Envers を既存のアプリケーションに追加することについては何も言及されていません。
Envers サポートを追加してそれぞれの監査テーブルを作成するだけでは、それらは空で始まるため、既存のエンティティを更新すると、Envers は新しい値を記録する監査テーブルにレコードを追加しますが、以前の値は失われます。
既存のデータベースを持つアプリケーションに Envers サポートを追加するにはどうすればよいですか?