私は春+ JPAプロジェクトを持っています。
イベント エントリを作成し、それらをテーブルに保存したいと思います。たとえば、次のようになります。
a) ID 4 のエンティティ "User" が変更されました: "userName" という名前のプロパティで oldValue: "john" newValue: "johnnie"
b)新しい顧客の電子メールが受信されたため、この電子メールの新しいチケットを作成しました。この電子メールの担当者は「Goku」という名前のユーザーです
私の質問は:
そのようなメカニズムを作成するためのベストプラクティスは何ですか? 現在、十分ではない2つのアイデアがあります。
1)履歴イベントを作成したいコードのすべての場所に次のコードを挿入できます。
historyManager.createEvent(String event string,String newValue, String oldValue, Date date);
このソリューションは機能しますが、非常に見苦しく、一般的ではありません。
2) Hibernate Envers を使用します。このライブラリは実際にプロジェクト内のすべてのエンティティの変更を単純な注釈でログに記録します: "@Audited" 問題は、このソリューションがパフォーマンスに影響を与え、正直言ってあまり魅力的ではないことです。